We allow WebP & HEIC/HEIF image uploads, but we are currently converting them to JPG or PNG using ImageMagick (open source). We used CFImage for retrieving the image data, but discovered that GraphicsMagick (open source) did a better job (faster; doesn't crash; works with more image types; can bulk output data for an entire directory, etc.) After discovering Caravaggio (a node.js image proxy), we don't use ColdFusion to resize images anymore. We prefer to retain the original uploaded image (convert only if WebP/HEIC/HEIF) and then use Caravaggio to resize, crop, overlay, rotate, flip and blur images by adding directives to the URL path. (Caravaggio has an option to modify the output format, so we add "o:wep" to the URL path for page requests when CGI.HTTP_ACCEPT contains "image/webp" and optimizes images are automatically returned as WebP.) https://caravaggio.ramielcreations.com/ To reduce conversion overhead, we leverage BunnyCDN's perma-cache to permanently cache images. To assist with cache busting (whenever images are updated by clients), we add a unique date-based hash to the URL path so that updated images have a unique path and can be refreshed. While the approach we've taken is technical and requires using some self-hosted non-ColdFusion apps & services (ImageMagick, GraphicsMagicl, reverse proxy, Caravaggio) and third-party (BunnyCDN), the result has been extremely good. We no longer have to generate & store multiple variations of images, WebP is returned automatically (if supported) and the Bunny CDN performance has boosted our SEO scores.
... View more