Image Optimize Changelog.

Link 1.6.56 · 2024.10.21


Link Changed ·

fixed -

  • Don't add image variants if no variant creator for them exists (#410)
  • Don't apply background placeholder CSS to images that may be transparent like SVGs or GIFs (#410)

Link 1.6.55 · 2024.06.19

fixed - 2024.06.19

  • Fixed an issue where srcsetMaxWidth() could return incorrect results (#407)
  • Fixed an issue where the data-uri for inline SVG styles were incorrect in some browsers because the spaces were not URL-encoded (#408)

Link 1.6.54 · 2024.05.09

fixed - 2024.05.09

  • Fixed an issue where the .imgTag() and .pictureTag() would output and invalid style attribute for lazy loaded images (#400)

Link 1.6.53 · 2024.04.04

added - 2024.04.04

  • Added the ability to pass in a config array to .imgTag(), .pictureTag() and .linkPreloadTag()

changed - 2024.04.04

  • Changed .loading().loadingStrategy(), .artDirection()addSourceFrom()

Link 1.6.52 · 2024.04.02

added - 2024.04.02

  • Added a --queue option to the image-optimize/optimize/create console command if you want to defer the image generation to be run via queue job, rather than immediately via the console command
  • Add phpstan and ecs code linting
  • Add code-analysis.yaml GitHub action
  • Add .imgTag() to the OptimizedImage model, which generates a complete <img> tag from the OptimizedImage
  • Add .pictureTag() to the OptimizedImage model, which generates a complete <picture> tag from the OptimizedImage
  • Add .linkPreloadTag() to the OptimizedImage model, which generates a complete <link rel="preload"> tag from the OptimizedImage
  • Add craft.imageOptimize.renderLazySizesJs() to render the LazySizes JavaScript for lazy loading images
  • Add craft.imageOptimize.renderLazySizesFallbackJs() to render the LazySizes JavaScript with a support script that uses LazySizes as a fallback for browsers that don't support the loading property

changed - 2024.04.02

  • Added PDF to the Ignore Files field settings (#364)
  • Updated docs to use node 20 & a new sitemap plugin
  • Switch over to Vite ^5.0.0 & Node ^20.0.0 for the buildchain
  • PHPstan code cleanup
  • ECS code cleanup

Link 1.6.51 · 2023.05.19

changed - 2023.05.19

  • Automate release generation via GitHub action
  • Add versioning to the docs

fixed - 2023.05.19

  • Remove the old Craft generated transform that's still sitting in the temp directory (#380)

Link 1.6.50 · 2023.02.09

changed - 2023.02.09

  • Use dynamic docker container name & port for the buildchain
  • Update the buildchain to use Vite ^4.0.0
  • Updated docs to use VitePress ^1.0.0-alpha.29
  • Refactored the docs buildchain to use a dynamic docker container setup

Link 1.6.49 · 2022.11.17

changed - 2022.11.17

  • Fixed HMR in local dev with explicit alias that resolves to the actual directory

Link 1.6.48 · 2022.07.17

changed - 2022.07.17

  • Add allow-plugins to composer.json to allow CI tests to work

fixed - 2022.07.17

  • Fixed an issue where transforms don't get deleted on remote volumes if the format was set to auto (#341)
  • Normalize for lowercase file extensions and normalize jpeg -> jpg everywhere

Link 1.6.47 · 2022.07.08

fixed - 2022.07.08

  • If there's no transform requested, return null so other plugins have a crack at it (#349)

Link 1.6.46 · 2022.06.29

fixed - 2022.06.29

  • Fixed an issue that could throw an exception when double-clicking on an asset, due to an incorrect asset bundle path

Link 1.6.45 · 2022.06.28

changed - 2022.06.28

  • If there's no transform requested, and we're not using some external service for image transforms, return null so other plugins have a crack at it

fixed - 2022.06.28

  • Removed empty type on registered script tags, which would prevent them loading via the Vite dev server
  • Fix syntax errors in OptimizedImagesField.js
  • Fixed an issue that could cause JavaScript errors for newly created OptimizedImages fields, and in slideouts (#344)

Link 1.6.44 · 2022.03.24

fixed - 2022.03.24

  • Fixed a regression due to a PR that could cause image variants to not be regenerated after resaving them

Link 1.6.43 · 2022.03.14

fixed - 2022.03.14

  • Fixed an issue where an exception could be thrown when running the craft resave/assets console command (#78)

Link 1.6.42 · 2022.02.23

added - 2022.02.23

  • Added in GQL implementation for srcsetMinWidth, srcsetMaxWidth, srcsetMinWidthWebp & srcsetMaxWidthWebp.Updated the documentation to show how these are used (#315)

changed - 2022.02.23

  • Only update variants for an existing asset if the image has been manipulated (#314)

fixed - 2022.02.23

  • Use the new Imgix purge API endpoint properly (#4)
  • Fixed an issue where corrupted images could result in the Imgix transformer throwing an exception (#3) (#306)

Link 1.6.41 · 2022.01.17

fixed - 2022.01.17

  • Fixed an issue that could cause the JavaScript to not execute properly, causing the Settings to not appearcorrectly (#310)

Link 1.6.40 · 2022.01.12

added - 2022.01.12

  • Add .gitattributes & CODEOWNERS
  • Add linting to build
  • Add compression of assets
  • Add bundle visualizer

Link 1.6.39 · 2022.01.04

changed - 2022.01.04

  • Updated the buildchain to use Node 16
  • Changed buildchain to Vite from webpack 5
  • Create variants via queue when an asset is moved in Craft ^3.7.1

Link 1.6.38 · 2021.11.18

fixed - 2021.11.18

  • Fixed the display of WebP images in FireFox, Safari, and other browsers that support WebP, but not from Canvas byimproving the WebP support detection method (#301)
  • Fixed the SVGO optimizer by ensuring that image processors without commandOptions have the resulting commandproperly padded with a space (#300)
  • Fixed an issue with the Sharp transform method where transforms could fail if the file extension was notlowercase (#4)

Link 1.6.37 · 2021.11.11

fixed - 2021.11.11

  • Fixed an issue where image placeholders would create images in incorrectly large sizes if certain EXIF data waspresent, and preserveExifData was set to true in config/general.php, resulting in a db error when trying to savethe encoded image in the field data (#296)

Link 1.6.36 · 2021.09.07

fixed - 2021.09.07

  • Fixed an issue where the wrong Imgix API was being used for purgingimages (#273)

Link 1.6.35 · 2021.07.14

fixed - 2021.07.14

  • Special-case for Craft 3.7 or later, with the addition of a suffix to the Field content columnname (https://github.com/craftcms/cms/issues/6922) (https://github.com/nystudio107/craft-imageoptimize/issues/289)

Link 1.6.34 · 2021.06.10

changed - 2021.06.10

  • Switched documentation system to VitePress
  • When an asset is replaced, force the recreation of thevariants (https://github.com/nystudio107/craft-imageoptimize/issues/283)

fixed - 2021.06.10

  • Fixed an issue where uppercase file suffixes would cause webp image variants to not becreated (https://github.com/nystudio107/craft-imageoptimize/issues/277)
  • If image/svg is being ignored, add image/svg+xml to the mime types to ignore as well
  • Now store the image sub-folders by name, since the UID can be different perenvironment (https://github.com/nystudio107/craft-imageoptimize/issues/282)

Link 1.6.33 · 2021.04.23

added - 2021.04.23

  • Added a setting to control the amount an image needs to be scaled down for automatic sharpening to beapplied (https://github.com/nystudio107/craft-imageoptimize/issues/263)
  • Added an option to cap the placeholder silhouette SVG size to32Kb (https://github.com/nystudio107/craft-imageoptimize/issues/270)

Link 1.6.32 · 2021.04.15

fixed - 2021.04.15

  • If there are too many sub-folders in an Asset volume, don't display them, return an emptyarray (https://github.com/nystudio107/craft-imageoptimize/issues/203)

Link 1.6.31 · 2021.04.06

added - 2021.04.06

  • Added make update to update NPM packages
  • Added make update-clean to completely remove node_modules/, then update NPM packages

changed - 2021.04.06

  • Use Tailwind CSS ^2.1.0 with JIT

fixed - 2021.04.06

  • Fixed broken link to lower quality retina images article

Link 1.6.30 · 2021.04.03

added - 2021.04.03

  • Added some additional CLI command logging that shows the savings from optimization

changed - 2021.04.03

  • Don't record or display errors that are a result of assets that are not images
  • Don't display image transform errors twice

Link 1.6.29 · 2021.03.31

fixed - 2021.03.31

  • Fixed a regression that caused the field settings to not work properly for adding/removing variantblocks (https://github.com/nystudio107/craft-imageoptimize/issues/268)

Link 1.6.28 · 2021.03.28

changed - 2021.03.28

  • Updated to latest docs dependencies

fixed - 2021.03.28

  • Fixed missing Composer dependency nystudio107/craft-plugin-manifest

Link 1.6.27 · 2021.03.28

changed - 2021.03.28

  • Move settings from the composer.json “extra” to the plugin main class
  • Move the manifest service registration to the constructor
  • Require nystudio107/craft-imageoptimize-imgix version ^1.2.1

fixed - 2021.03.28

  • Return null if no transform needs to be done, so other plugins can hook in

Link 1.6.26 · 2021.02.26

fixed - 2021.02.26

  • Fixed a regression that caused the image sizes to show up as ??? in the Asset Detail view

Link 1.6.25 · 2021.02.23

changed - 2021.02.23

  • Updated to use craft-imageoptimize-imgix version ^1.2.0

fixed - 2021.02.23

  • Always display sticky errors

Link 1.6.24 · 2020.02.13

added - 2020.02.13

  • Added error logging for curl errors

changed - 2020.02.13

  • Attempt to display optimized image variants even if the image curl fails
  • Remove the use of curl to obtain the remote image sizes, replacing it with frontend JS

Link 1.6.23 · 2020.02.13

fixed - 2020.02.13

  • Fixed parse errors with PHP < 7.3

Link 1.6.22 · 2020.02.10

added - 2020.02.10

  • Added a stickyErrors property to the OptimizedImages model, so we can post-facto display if something went wrongduring image generation on the frontend to users
  • Implemented useFieldset for Craft 3.6

fixed - 2020.02.10

  • Fixed deprecation errors in Craft CMS 3.5 or later
  • Fixed an issue where aspect ratios could be improperly rounded, causing a division by zero error

Link 1.6.21 · 2020.12.31

added - 2020.12.31

  • Added a ImageOptimize Info Utility that allows you to see the ImageOptimize settings even in environmentswhere allowAdminChanges is false
  • Added a try/catch block to Imagine calls to handle errors more gracefully

changed - 2020.12.31

  • Split out vendors & commons chunks
  • Switch from using ->each() to using craft\db\Paginator to paginate asset query results, to address out of memoryissues on massive queries
  • ImageOptimize now requires Craft CMS 3.1.19 or later

Link 1.6.20 · 2020.12.08

changed - 2020.12.08

  • Lowercase written instances of "Imgix"
  • Added additional logging for image placeholder and color extraction
  • Moved the CSS/JS buildchain over to webpack 5
  • Updated to latest npm deps

Link 1.6.19 · 2020.10.07

fixed - 2020.10.07

  • Fixed improperly generated webp URL for Imgix

Link 1.6.18 · 2020.09.28

changed - 2020.09.28

  • If an Optimized Images field is edited, only re-save the transforms for that specific field
  • Allow an optional --field to be passed into the php craft image-optimize/optimize/create console command to onlycreate image variants associated with a specific Optimized Images field
  • Allow an optional --force flag to be passed into the php craft image-optimize/optimize/create console command forforce image variant creation

Link 1.6.17 · 2020.09.18

changed - 2020.09.18

  • Sped up image optimization on multi-site setups by not spawning a new optimizing images job if the element is merelypropagating to other sites

fixed - 2020.09.18

  • Fixes issue when using asset.getUrl({ }) with Imgix, where format would be coerced to the image's extensionformat, when it should have been left as null.

Link 1.6.16 · 2020.08.31

changed - 2020.08.31

  • Cleaned up the field styling to make it look correct on Craft CMS > 3.5.0
  • Default to false if $variant['useAspectRatio'] is somehow null

Link 1.6.15 · 2020.08.25

added - 2020.08.25

  • Added support for Redis queue jobs
  • If an Optimized Images field isn't set to create variants for the sub-folder that an Asset is in, it'll display N/A

changed - 2020.08.25

  • Cleaned up the field formatting for Craft CMS 3.5 CSS layout changes

fixed - 2020.08.25

  • Fixed an issue with .webp URLs not working for URLs with ports in them
  • Make missing webp variants display better
  • Fixed an issue where images that were in sub-folders of sub-folders didn't have image variants created for them, ifonly specific volume sub-folders were chosen for optimization

Link 1.6.14 · 2020.06.08

fixed - 2020.06.08

  • Ensure image quality is set to null as “Auto” setting of image quality

Link 1.6.13 · 2020.04.16

fixed - 2020.04.16

  • Fixed Asset Bundle namespace case

Link 1.6.12 · 2020.03.21

added - 2020.03.21

  • Added the create-asset console command for regenerating the responsive image variants for a single Asset ID

changed - 2020.03.21

  • Generated image URLs that have no file format extension are now properly displayed in the GUI (an issue mostly withserverless Sharp)

Link 1.6.11 · 2020.02.12

changed - 2020.02.12

  • Sanity check the inputs before normalizaing the file format

Link 1.6.10 · 2020.02.11

changed - 2020.02.11

  • Normalize the file format to lowercase before transforming

Link 1.6.9 · 2020.02.06

changed - 2020.02.06

  • Properly documented how the data in the imageTransformTypeSettings config is stored

fixed - 2020.02.06

  • Fixed an issue where an SVG sent in to an image transform handler as a thumbnail request without specifying anotherformat to convert to

Link 1.6.8 · 2020.01.27

fixed - 2020.01.27

  • Fixed an issue where an SVG sent in to image transform handler without specifying another format to convert to
  • Fixed an issue where MTIME or other query string params could be listed as part of the image format

Link 1.6.7 · 2020.01.08

added - 2020.01.08

  • Added the ability to retrieve the dominant color palette as RGB values, making things like gradients easier to do
  • ImageOptimize will now send back an Imgix or other transform method URL for asset.getUrl() with no transform applied

Link 1.6.6 · 2019.11.19

added - 2019.11.19

  • Added a Preferences item to control whether allow limiting the creation of Optimized Image Variants for images bysub-folders

Link 1.6.5 · 2019.11.13

added - 2019.11.13

  • Added the ability to choose the sub-folders in an asset volume in which Optimized Image Variants will be created

changed - 2019.11.13

  • Parse volumes sub-folders as environment variables

Link 1.6.4 · 2019.10.31

changed - 2019.10.31

  • If an image is an animated .gif file, never change the file format

Link 1.6.3 · 2019.10.24

changed - 2019.10.24

  • Force update to "nystudio107/craft-imageoptimize-imgix": "^1.1.1"
  • Fixed aspect ratio for CP thumbnail images
  • Default createPlaceholderSilhouettes to false so people need to enable this setting if they want to use them (theycan be on the larger side)

Link 1.6.2 · 2019.09.25

changed - 2019.09.25

  • Added support for native GraphQL in Craft 3.3

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 ingeneric 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 anidea 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 transformservices

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 creatorsby default

added - 2018.03.19

  • Added craft.imageOptimize.serverSupportsWebP() function to determine whether the server is capable ofcreating .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 palettegeneration 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 ImageVariants 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 parameterto .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 whenusing 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 fromImgix
  • Added image-optimize/optimize/create and image-optimize/optimize/clear console commands for command line OptimizedImage 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 wasdisabled
  • 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 ornon-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'slayout

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 autoSharpenScaledImagessetting 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 settingin config.php)
  • Don't create Optimized Image Variants if it means the original image would be up-scaled (controllable viathe 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.phpsetting
  • 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