Image Optimize Changelog.

Link 1.6.1 · 2019.08.13

changed - 2019.08.13

  • Added more robust sanity checking if an invalid URL or path is being passed into ImageTransform::appendExtension()

Link 1.6.0 · 2019.07.05

added - 2019.07.05

changed - 2019.07.05

  • Fixed an issue where ImageOptimize was not handling assets it didn't know how to transform property, resulting in generic thumbnails if you used the Embedded Assets plugin
  • Updated ImageTransformInterface to remove the deprecated $params

Link 1.5.7 · 2019.06.13

added - 2019.06.13

  • Added a lightness calculation based on a weighted average of the extracted dominant color palette to give you an idea of the image's overall lightness

changed - 2019.06.13

  • Don't force the format for fallback images
  • Rebuilt assets to fix npm vulnerabilities

Link 1.5.6 · 2019.05.21

changed - 2019.05.21

  • Fixed an issue where newly added Image Variant blocks had incorrect ids on the Retina checkboxes
  • Updated build system

Link 1.5.5 · 2019.04.22

changed - 2019.04.22

  • Updated Twig namespacing to be compliant with deprecated class aliases in 2.7.x

Link 1.5.4 · 2019.02.22

changed - 2019.02.22

  • Fixed an issue where focal points weren't always respected for Imgix

Link 1.5.3 · 2019.02.07

changed - 2019.02.07

  • Fixed an issue where .env vars were not actually parsed

Link 1.5.2 · 2019.02.07

changed - 2019.02.07


Link 1.5.1 · 2018.12.28

changed - 2018.12.28

  • Refactored the Imgix and Thumbor Image Transforms out to external packages

Link 1.5.0 · 2018.12.27

changed - 2018.12.27

  • Refactored out the ImageTransform interface to use Yii2's DI to allow them to be stand-alone components
  • Respond to Assets::EVENT_GET_ASSET_THUMB_URL for direct thumbnail generation from third party image transform services

Link 1.4.45 · 2018.11.28

changed - 2018.11.28

  • Call App::maxPowerCaptain() whenever a queue is manually run (both via web and console request)
  • Minor Thumbor fixes

Link 1.4.44 · 2018.11.18

changed - 2018.11.18

  • Default format and quality to null so they can be omitted if you're generating transforms via Twig
  • Fix an issue with Imgix with images that have no focal point set

Link 1.4.43 · 2018.11.05

changed - 2018.11.05

  • Fix Thumbor focal point order
  • Fix a regression that broke images in sub-folders for Imgix
  • Retooled the JavaScript build system to be more compatible with edge case server setups

Link 1.4.42 · 2018.10.15

added - 2018.10.15

  • Added the ability to have OptimizedImages fields ignore SVG and/or GIF files
  • Added support Thumbor resizing service

Link 1.4.41 · 2018.10.11

changed - 2018.10.11

  • Fixed an issue where volumes with sub-folders such as Amazon S3 or Google Cloud didn't generate the correct URLs
  • Fixed the build process so it will no longer look for devServer on installs
  • Added a link to the variant does not exist to aid in diagnosing what is wrong
  • Changed the signature of ::getWebPUrl() to send in all of the transform params

Link 1.4.40 · 2018.10.05

added - 2018.10.05

  • Add Super Table conditional for field

changed - 2018.10.05

  • Updated build process

Link 1.4.39 · 2018.09.25

changed - 2018.09.25

  • Added a try/catch around ColorThief, to catch errors thrown due to empty/transparent images
  • Fix a regression that could cause Optimized Images to not be generated correctly
  • Modernized package.json and webpack build

Link 1.4.38 · 2018.08.20

changed - 2018.08.20

  • Fixed an incompatibility with the Spoon plugin by removing matrix-field class from field type settings
  • Fixed an erroneous 2:2 aspect ratio in the default settings
  • Moved to a modern webpack build config for the Control Panel
  • Added install confetti

Link 1.4.37 · 2018.08.09

changed - 2018.08.09

  • Reverted an errant commit that removed a fix for propagating field data in multi-site environments
  • Ensure that .webp variants have fully qualified absolute URLs

Link 1.4.36 · 2018.08.06

added - 2018.08.06

  • Added the ability to access each image variant's height

changed - 2018.08.06

  • Update to the latest version of the Imgix PHP library

Link 1.4.35 · 2018.07.12

changed - 2018.07.12

  • Catch all exceptions that happen during ResaveOptimizedImages() job so that execution can continue

Link 1.4.34 · 2018.07.12

changed - 2018.07.12

  • Smarter appending of variant creator suffixes, to handle URLs that have query strings

Link 1.4.33 · 2018.05.24

changed - 2018.05.24

  • Handle JPEGs coming in as both jpg & jpeg for the detected file format
  • Remove vestigal empty() checks

Link 1.4.32 · 2018.05.09

added - 2018.05.09

  • Improved CraftQL support by allowing parameter passing to src and srcUrls

Link 1.4.31 · 2018.04.22

added - 2018.04.22

  • Added CraftQL support

Link 1.4.30 · 2018.04.09

added - 2018.04.09

  • Added additional profiling information

Link 1.4.29 · 2018.04.06

added - 2018.04.06

  • Added profiling to the image variant creation

changed - 2018.04.06

  • Vastly increase the speed with which the transforms are created when done via Twig templating code
  • Increased the speed of the variant creation in general

Link 1.4.28 · 2018.04.02

changed - 2018.04.02

  • Switched over to using the Unsharp Mask (usm) filter for auto-sharpening Imgix images

Link 1.4.27 · 2018.04.02

changed - 2018.04.02

  • Removed unused composer dependencies

Link 1.4.26 · 2018.03.31

changed - 2018.03.31

  • Fixed a typo with $generatePlacholders that would cause saving images to fail

Link 1.4.25 · 2018.03.30

changed - 2018.03.30

  • Fixed a typo in the config.php settings, changed generatePlacholders -> generatePlaceholders
  • Made the reduced quality of retina images if lowerQualityRetinaImageVariants is enabled less aggressive

Link 1.4.24 · 2018.03.19

changed - 2018.03.19

  • Fixed an issue with propagating field data in multi-site environments
  • Scrutinizer code cleanup / refactoring
  • If .webp support isn't configured, we don't display the images for the webp variants
  • If images are being generated via template (not recommended) disable running the image optimizers and variant creators by default

added - 2018.03.19

  • Added craft.imageOptimize.serverSupportsWebP() function to determine whether the server is capable of creating .webp variants
  • Added validation rules for imgixSecurityToken so the value can be saved in the model

Link 1.4.23 · 2018.03.03

changed - 2018.03.03

  • The lengthy generation of placeholders should really be off by default when doing them via Twig now
  • Asset move operations now cause Optimized Image Variants to be re-saved via a non-blocking queue job

Link 1.4.22 · 2018.03.02

changed - 2018.03.02

  • Using Image Optimize via Twig should have less of a performance hit now, since all placeholder image/color palette generation is disabled
  • Fixed deprecation errors from Craft CMS 3 RC13

Link 1.4.21 · 2018.02.27

changed - 2018.02.27

  • Show a warning if people try to add an OptimizedImages field in a Matrix block

Link 1.4.20 · 2018.02.27

added - 2018.02.27

  • Allow for CLI processing of specific Asset Volumes via image-optimize/optimize/create volumehandle
  • Added automaticallyResaveImageVariants to config.php to allow disabling of the automatic re-saving of Image Variants for people who want to do it manually via the CLI
  • Added a .srcWebp() method for OptimizedImages
  • Added an optional width parameter that can be passed into .src() and .srcWebp()
  • Added support for mostly deprecated 1x, 2x, etc. srcsets by passing an optional true parameter to .srcsetWidth(XXX, true) and .srcsetWidthWebp(XXX, true)

changed - 2018.02.27

  • Fix more deprecation errors from Craft CMS 3 RC 12

Link 1.4.19 · 2018.02.23

changed - 2018.02.23

  • Fix deprecation errors from Craft CMS 3 RC 12 (which were causing slowdowns)

Link 1.4.18 · 2018.02.19

added - 2018.02.19

  • Fix a division by 0 error with some custom Craft transforms when using Imgix as a transform method

Link 1.4.17 · 2018.02.16

added - 2018.02.16

  • Added lightswitch controls to the OptimizedImages field that let you control what is displayed

changed - 2018.02.16

  • Ensure we handle all of the potential $transform types passed into EVENT_GET_ASSET_URL
  • Both createColorPalette and createPlaceholderSilhouettes are now off by default when using craft.imageOptimize.createOptimizedImages() via Twig, but can be overridden

Link 1.4.16 · 2018.02.15

added - 2018.02.15

  • Added support for optional security token used to sign image URLs from Imgix
  • Added image-optimize/optimize/create and image-optimize/optimize/clear console commands for command line Optimized Image Variant creation

changed - 2018.02.15

  • Display the non-webp version of an image when it exists, but the browser doesn't support displaying .webp
  • Handles error conditions with filesize better

Link 1.4.15 · 2018.02.14

changed - 2018.02.14

  • Resave all asset volumes after the settings are changed (not just the Transform Method)
  • Save the Optimized Image Variants via an async queue when possible
  • Detect gd installation via function_exists instead of extension_loaded
  • Handle protocol-relative siteUrls better

Link 1.4.14 · 2018.02.09

changed - 2018.02.09

  • Fixed an issue where certain settings could not be saved via the Control Panel
  • Check to ensure that GD is installed before attempting to generate silhouette placeholders
  • Show a warning on the Settings page if GD is not installed

Link 1.4.13 · 2018.02.05

changed - 2018.02.05

  • Removed Edit Image button, since Craft CMS 3 now includes one in the Asset preview

Link 1.4.12 · 2018.02.01

changed - 2018.02.01

  • Removed the api-key parameter from Imgix image transform URLs

Link 1.4.11 · 2018.01.30

changed - 2018.01.30

  • Renamed the composer package name to craft-imageoptimize
  • Fixed a regression that broke protocol-relative siteUrls

Link 1.4.10 · 2018.01.26

added - 2018.01.26

  • Shows an error if an OptimizedImages field is added to anything other than an Asset's layout
  • Added a warning if a config setting is being overridden by the config.php
  • Added a number of config settings to the Control Panel GUI

changed - 2018.01.26

  • UrlHelper::urlWithProtocol -> UrlHelper::urlWithScheme for Craft CMS 3 RC7 compatibility
  • Fixed an issue where you could delete the last Image Variant in the field settings, even though the option was disabled
  • Handle the display of Optimized Image Variant names better when coming from Imgix

Link 1.4.9 · 2018.01.20

added - 2018.01.20

  • Added an Edit Image button to the Optimized Images field view

changed - 2018.01.20

  • Fixed getWebPUrl() for the Imgix image transform driver
  • Fixed an issue where image uploads/changes would fail if you had an invalid or non-existent activeImageVariantCreators set
  • Fixed an issue with protocol-relative siteUrls

Link 1.4.8 · 2018.01.11

changed - 2018.01.11

  • Fixed a flaw in the default aspect ratios
  • Fixed Focal Point resaving issue
  • Resaving Optimized Image Variants after making field changes should be quicker now

Link 1.4.7 · 2017.12.29

changed - 2017.12.29

  • Fixed a regression that would cause issues with PHP 7.0 (but not later versions of PHP)

Link 1.4.6 · 2017.12.27

changed - 2017.12.27

  • Handle the case of no Optimize Image Variants being created due to upscaling by just returning the original image
  • Made the documentation on the OptimizedImages Field more clear, in that it needs to be added to an Asset Volume's layout

Link 1.4.5 · 2017.12.22

added - 2017.12.22

  • Added .getMaxSrcsetWidth() to work around issues with <img srcset> choosing sizes larger than are available
  • Added a max size of 30K for generated silhouette SVGs, at which point it returns a simple SVG box

changed - 2017.12.22

  • Better exception handling

Link 1.4.4 · 2017.12.19

added - 2017.12.19

  • Image variant creators now clean up after themselves when an Asset transform is deleted

changed - 2017.12.19

  • ImageOptimize now requires at least Craft CMS 3 RC3 or later

Link 1.4.3 · 2017.12.19

added - 2017.12.19

  • Image transforms that are scaled down >= 50% are now auto-sharpened (controllable via the autoSharpenScaledImages setting in config.php)
  • It's now possible to set the default aspect ratios in the config.php

changed - 2017.12.19

  • No longer possible delete the last Optimized Image variant
  • At least one Optimized Image variant will always be present

Link 1.4.2 · 2017.12.15

changed - 2017.12.15

  • Fixed an issue where .webp variants would not be created

Link 1.4.1 · 2017.12.13

changed - 2017.12.13

  • Re-create the Responsive Image Variants when an Asset is replaced
  • Handle cache busting for the Responsive Image Variants by appending an ?mtime= string to the URL
  • Better display of image variants when no variants are created
  • No longer throws errors if you don't have the an image variant creator installed
  • Wrap URLs and data returned to templates with Template::raw() so they won't be HTML entity encoded by default

Link 1.4.0 · 2017.12.12

added - 2017.12.12

  • Added craft.imageOptimize.createOptimizedImages to allow for the dynamic creation of Optimized Image variants
  • Added craft.imageOptimize.placeholderBox to create a transparent SVG placeholder box of an arbitrary size and color
  • Automatically reduce the quality of retina images (controllable via the lowerQualityRetinaImageVariants setting in config.php)
  • Don't create Optimized Image Variants if it means the original image would be up-scaled (controllable via the allowUpScaledImageVariants setting in config.php)
  • Purge URLs for assets that are deleted from services like Imgix

changed - 2017.12.12

  • Fixed an issue where deleted Optimized Image Variant blocks would cause an error once saved
  • Changed the default optipng compression to -o3 so the compression time is more reasonable
  • Updated README.md to reflect the new features

Link 1.3.6 · 2017.12.10

changed - 2017.12.10

  • Fixed an error with Imgix transforms

Link 1.3.5 · 2017.12.06

changed - 2017.12.06

  • Switched from file_exists() to is_file() for detecting image processor and variant commands
  • Fixed an issue with Optimized Image Variant generation on certain setups
  • The OptimizedImages field now displays protocol-relative images properly
  • Added better debug logging
  • Updated to require craftcms/cms ^3.0.0-RC1

Link 1.3.4 · 2017.12.03

changed - 2017.12.03

  • Fixed an issue where selecting image variants would result in the wrong aspect ratio
  • Changed the default image variant widths

Link 1.3.3 · 2017.11.30

added - 2017.11.30

  • Auto-purge remote Imgix image URLs when assets are changed

changed - 2017.11.30

  • Fixed an issue with newly uploaded assets that have an OptimizedImages field in their Volume Layout

Link 1.3.2 · 2017.11.14

added - 2017.11.14

  • Added media query srcset sizes for precise control over the output sizes

Link 1.3.1 · 2017.11.13

added - 2017.11.13

  • Added the display of the dominant color palette and the lazy load placeholder images to the Field
  • Optimize the placeholder images regardless of user settings
  • Fixed an issue where newly uploaded assets would not resave on the AJAX request
  • Added portrait & landscape responsive image variant presets

Link 1.3.0 · 2017.11.10

changed - 2017.11.10

  • Added support for globally replacing native Craft transforms with a service like Imgix, with zero template changes
  • Added a Welcome page after installing ImageOptimize
  • Performance improvements when generating the placeholders

Link 1.2.10 · 2017.11.04

changed - 2017.11.04

  • Fixed broken OptimizedImages Field settings
  • Fixed optipng path in config.php
  • Implemented an abstract ImageTransform class & interface

Link 1.2.9 · 2017.11.03

added - 2017.11.03

  • Added support for using Imgix to create the responsive image transforms

changed - 2017.11.03

  • Switched over to using ResaveElements queue to handle newly uploaded Assets
  • Implemented optimized SVG data URIs, which can shave 15% off of the size of the SVG size

Link 1.2.8 · 2017.10.19

changed - 2017.10.19

  • More paranoid sanity checking of the activeImageProcessors and activeImageVariantCreators config.php settings

added - 2017.10.19

  • Added the ability to control when image variants are created via generateTransformsBeforePageLoad config.php setting
  • Added a createColorPalette in config.php to control dominant color palette creation
  • Added a createPlaceholderSilhouettes in config.php to control silhouette placeholder image creation

Link 1.2.7 · 2017.10.18

added - 2017.10.18

  • Added the ability to make inline SVG silhouette images as placeholder images for lazing loading

Link 1.2.6 · 2017.10.16

changed - 2017.10.16

  • Moved the default variants to the config.php and Settings model, so they can be overridden

added - 2017.10.16

  • Added the variant setting Enforce Aspect Ratio to allow for images with no fixed aspect ratio

Link 1.2.5 · 2017.10.11

added - 2017.10.11

  • Added the ability to automatically set the placeholder color to the image's dominant color
  • Added the ability to extract the 5 dominant colors from an image

Link 1.2.4 · 2017.10.10

added - 2017.10.10

  • Added automatic generation of Instagram-style low resolution placeholder images for lazing loading

Link 1.2.3 · 2017.09.16

added - 2017.09.16

  • Added support for 2x and 3x retina images
  • Added a .src() method to get the default responsive variant

changed - 2017.09.16

  • Updated the README.md to be more descriptive

Link 1.2.2 · 2017.09.11

changed - 2017.09.11

  • Responsive Image Variants now default to jpg as a file format, for client-proofing purposes
  • Fixed an issue where re-arranging to adding/deleting Responsive Image Variants could cause issues
  • Fixed an issue with non-manipulatable images like PDF

Link 1.2.1 · 2017.09.10

changed - 2017.09.10

  • Fixed an issue that could leave stale image variants around
  • Ensure that the optimized image variants are re-created if the image is edited
  • Added logging to show the savings for image variants
  • Fixed the way the Settings page is rendered
  • Updated README.md

Link 1.2.0 · 2017.09.08

added - 2017.09.08

  • Added OptimzedImages Field
  • Updated README.md

Link 1.1.0 · 2017.08.07

added - 2017.08.07

  • Added support for automatic webp image variant creation

Link 1.0.10 · 2017.08.06

changed - 2017.08.06

  • Fixed support for the mozjpeg image processor

Link 1.0.9 · 2017.07.15

changed - 2017.07.15

  • Craft 3 beta 20 compatibility

Link 1.0.8 · 2017.04.20

changed - 2017.04.20

  • Fixed the packagist.org package name to coincide with the plugin renaming
  • Added debug trace logging in the event handler
  • Updated README.md

Link 1.0.7 · 2017.04.10

changed - 2017.04.10

  • Renamed the plugin from ImageOptim to ImageOptimize
  • Added .webp support

Link 1.0.6 · 2017.04.08

changed - 2017.04.08

  • Added createSettingsModel() to the main plugin class

Link 1.0.5 · 2017.03.24

changed - 2017.03.24

  • hasSettings -> hasCpSettings for Craft 3 beta 8 compatibility
  • Added Craft 3 beta 8 compatible settings
  • Modified config service calls for Craft 3 beta 8

Link 1.0.4 · 2017.03.12

added - 2017.03.12

  • Added code inspection typehinting for the plugin & services

changed - 2017.03.12

  • Removed unused resources/img

Link 1.0.3 · 2017.03.12

added - 2017.03.12

  • Added support for gif images via gifsicle
  • Added craft/cms as a composer dependency

changed - 2017.03.12

  • Code refactor/cleanup

Link 1.0.2 · 2017.03.11

added - 2017.03.11

  • Added logging of the savings for each image optimization if devMode is on

Link 1.0.1 · 2017.03.11

added - 2017.03.11

  • Added mikehaertl/php-shellcommand as a dependency in composer.json

changed - 2017.03.11

  • Updated README.md with more information

Link 1.0.0 · 2017.03.11

added - 2017.03.11

  • Initial release