Version 6.2.0
November 4, 2026
Dominant colors are now calculated differently, and existing images may get a different dominant color after updating. Cached colors from earlier versions are not reused.
Changed
getDominantColor()now returns the most common color in the image. Previously it returned the first color of the Color Thief palette, which is ranked by how much of the color space a group of colors spans, not just by how many pixels it has. A small, varied detail could beat a large, flat area, so an image that is 90% red with a blue detail would get blue as its dominant color. This also applies to thedominantColorgenerate flag and thedominantColorreturn type of the@imagerTransformGraphQL directive.getDominantColor()andgetColorPalette()no longer ignore white. Color Thief skips pixels where all channels are above 250, so a mostly white image got the color of whatever else was in it as its dominant color, and a white image gotnull.getDominantColor()now returns the actual average color of the matching pixels, so a white image gets#ffffffand a black image gets#000000, instead of#fcfcfcand#040404.ksubileau/color-thief-php2.0 or later is now required.
Fixed
- Fixed
getColorPalette()throwing aTypeErrorinstead of returningnullwhen an image couldn't be analyzed.
Version 6.1.3
October 26, 2026
Fixed
- Fixed transformed images having their file type detected with
finfoon every render, also when the transform already existed. For JPEG, PNG, GIF, WebP and AVIF the mime type is now taken from thegetimagesize()call that reads the image dimensions (fixes #315).
Version 6.1.2
October 13, 2026
Fixed
- Fixed native crop transforms not using the asset's focal point when
useForNativeTransformsis enabled, so they now match Craft (fixes #314).
Version 6.1.1
September 21, 2026
Fixed
- Fixed date interval parsing for all durations (fixes #313).
Version 6.1.0
July 16, 2026
Added
- Added a
--runtimeCacheoption to theimager-x/cleanconsole command for cleaning expired files in the runtime cache (fixes #311). - Added an
--excludeoption to theimager-x/cleanconsole command for excluding subpaths from cleaning. When cleaning the runtime cache,temp,pdf-adapterandvideo-adapterare always excluded. - Added a
--forceoption to theimager-x/generateconsole command for forcing transforms to be generated even if they already exist and have not expired (fixes #310).
Fixed
- Fixed a race condition where concurrent first transforms of the same remote volume asset or external URL could publish a partial file to the source cache and reuse it until it expired. Source file downloads are now serialized with a mutex and published atomically with
rename()(fixes #309). - Fixed duplicate transform queue jobs when elements were saved in multi-site installs. Identical jobs are now deduplicated per request, and volume-based auto generation skips propagation saves (fixes #307).
Version 6.0.1
July 2, 2026
Fixed
- Fixed additional SSRF bypasses in external URL validation: redirects are now followed manually and re-validated on every hop, the connection is pinned to the validated IP to mitigate DNS rebinding, all resolved A/AAAA records are checked (not just the first), and downloads are restricted to the
http/httpsprotocols. TheskipExternalUrlValidationconfig setting still disables these checks. - Fixed a path traversal issue by confining string-based local image sources to the web root / imager system path.
- Fixed
safeFileFormatsvalidation to URL sources in theimagerTransformGraphQL query. - Fixed potential command injection in the image optimizers and custom encoder by escaping file path arguments with
escapeshellarg(). - Fixed the cache clear key comparison to be constant-time, and added validation of the
--volumehandle in theimager-x/cleanconsole command.
Version 6.0.0
May 24, 2026
This release contains breaking changes. Please review the release notes carefully before upgrading.
Removed
- Removed Imgix support from core. Imgix is now available as a separate plugin,
spacecatninja/imager-x-imgix-transformer. A deprecation notice is logged if old Imgix-related config settings are present. Please install the plugin and migrate your Imgix configuration toconfig/imager-x-imgix-transformer.php, see documentation for details. - Removed AWS and GCS external storage drivers from core. These are now available as separate plugins,
spacecatninja/imager-x-aws-storage-driverandspacecatninja/imager-x-gcs-storage-driver. - Removed Kraken and Tinify optimizers from core. These are now available as separate plugins,
spacecatninja/imager-x-kraken-optimizerandspacecatninja/imager-x-tinify-optimizer.
Changed
- Changed
safeFileFormatsconfig setting, addedwebpto the default. - Changed optimizer config key from
tinypngtotinify.
Version 5.2.1
March 1, 2026
Added
- Added skipExternalUrlValidation config setting to skip the new external URL validation check.
Fixed
- Fixed SSRF vulnerability by blocking private/reserved IP ranges for external URL downloads.
- Fixed option escaping for shell commands.
- Fixed handling of cache clear key.
Version 5.2.0
February 28, 2026
Added
- Added support for auto generating images in content blocks, and added support for expanded syntax to
fieldsauto generate config (fixes #305 and #39). - Added support for specifying offset and limit per field in the format
fieldHandle[offset:limit](fixes #301).
Changed
- Changed from
Asset::EVENT_DEFINE_URLtoAsset::EVENT_BEFORE_DEFINE_URLwhen replacing native transforms with Imager X for performance (thanks, @johnnynotsolucky).
Version 5.1.7
November 14, 2025
Fixed
- Fixed an issue where the width and height of Imgix transforms would be wrong if both
widthandheightwere provided, and mode wasfit. (fixes #303, thanks @white-ruud).
Version 5.1.6
July 24, 2025
Fixed
- Fixed asset check in all GQL related code to allow any file kind, to account for adapters (fixes #297, thanks @denisyilmaz).
Version 5.1.5
July 16, 2025
Added
- Added config setting
disableACLto AWS external storage (fixes #296).
Fixed
- Fixed a type issue that could occur when setting opacity for letterbox.
Version 5.1.4
June 7, 2025
Added
- Added support for dominantColor as a return type for
imagerTransformGraphQL directive (fixes #290).
Fixed
- Fixed an issue where Imgix URLs could have double slashes if
useCloudSourcePathwasnull(fixes #289).
Version 5.1.3
March 25, 2025
Fixed
- Fixed an issue where TransformJob was throwing an error if an asset couldn’t be found, which would result in errors when replacing assets.
Version 5.1.2
February 27, 2025
Fixed
- Fixed an issue where GD could throw an error because the output format extension wasn’t an allowed one (addresses #184)
Version 5.1.1
January 7, 2025
Fixed
- Fixed an issue that could occur if an assets volume didn’t have public URLs enabled (fixes #280).
Version 5.1.0
December 1, 2024
Added
- Added support for credential less authentication for AWS external storage, the storage config now take a
useCredentialLessAuthconfig setting that can be set totrue. It should now behave the same as the AWS volume from P&T (closes #254).
Changed
- Changed/repurposed behaviour of
hideClearCachesForUserGroupsconfig setting (which was no longer used), to hide clear cache element actions for user groups (closes #278).
Version 5.0.3
November 8, 2024
Fixed
- Fixed an issue where Imager would try to remove transforms for non-image assets (fixes #273).
Version 5.0.2
August 8, 2024
Fixed
- Fixed auto generation for fields inside matrix entry types (fixes #270).
Version 5.0.1
June 24, 2024
Fixed
- Fixed an issue that could occur if slashes were used in config override parameters (fixes #268).
Changed
- Changed event for registrering extensions to be more in line with what Craft recommends.
Version 5.0.0
April 10, 2024
Added
- Added support for Craft 5
- Added support for creating queue jobs when using the generate console command.
- Added support for limit and offset when using the generate console command.
- Added support for using
{transformName}infilenamePattern(resolves #257)
Fixed
- Fixed incorrect closure check for transform params and improved error handling.
- Fixed icon method for utility
- Fixed use of deprecated method
ensureTopFolder.
Changed
- Changed behaviour of avif and jxl transforms, they are now processed via Imagine.