ChangelogLast updated: 9 September 2024
1.4.7 (10 August 2024)
New features:
- add automatic image preloading as option . (#369)
- add variable to allow preload option to be used with tag-pair form of JCOGS Image. (#377)
Improvement:
- set Curl as default method for all remote file access operations . (#370)
Bug fixes for:
- where clearing the cache from CP would trigger base_path warning in CP. (#367)
- where watermark images were not being added to images correctly. (#373)
- where background lazy loading would not fully complete construction of <img> tag when used in single tag mode. (#374)
- where allow_url_fopen status would affect ability of Image to generate working image even if remote file access not required. (#375)
1.4.6 (17 July 2024)
Improvement:
- Updated settings for image remote access. (#365)
Bug fixes for:
- where the default value for setting "Maximum dimension limit for source image processing (px)" was set to zero. (#351)
- where setting up new Cloud File accounts failed due to validation errors. (#352)
- where Image 1.4 was being overly protective of animated gif images. (#354)
- where Image template debugging reports wrong file extension when saving image. (#355)
- where updates from 1.3 to 1.4 didn't update settings for local file access correctly. (#356)
- where using an svg as watermark triggers GD error. (#361)
- where the fallback_src parameter would fail to work as intended. (#362)
- where an incorrectly set cache path could lead to an exception error during cache audit. (#364)
- where background lazy loading was not instantiating correctly. (#366)
1.3.23 (17 July 2024)
Important Note:
JCOGS Image 1.3 releases are compatible with php 7.4 and EE5, but lack features found in the 1.4 series.
Improvement:
- Updated settings for image remote access. (#365)
Bug fixes for:
- where the default value for setting "Maximum dimension limit for source image processing (px)" was set to zero. (#351)
- where using an svg as watermark triggers GD error. (#361)
- where the fallback_src parameter would fail to work as intended. (#362)
1.4.5 (10 June 2024)
Improved:
- Implementation of new ‘background-first’ approach for Lazy Loading. (#256)
- Cache time savings now displayed in more compact units if appropriate. (#347)
Bug fixes for:
- where CP would erroneously report a base_path access error. (#343)
- where new extension hooks may not be correctly registered during add-on update. (#344)
- where already cached images were being re-created unnecessarily due over-enthusiastic assumptions about completeness of cache_log. (#345)
- where the clear cache button sometimes disappears after cache is cleared. (#348)
- where cache audit was being run for every image regardless of value for cache audit interval. (#349)
1.4.4 (10 May 2024)
Improved:
- Layout of local cache related options on Image Cache settings page. (#309)
- Messaging relating to cache status when empty. (#341)
- Code improvements to reduce duplication of operations and improve overall speed of operation. (#333)
- More robust cache index system based on db table and static array. (#302)
- More robust support for use of open_basedir. (#313)
- Move image sharpen operations to a filter. (#330)
Bug fixes for:
- where incorrectly set EE base_path value would lead to Flysystem exception errors on Docker based systems. (#342)
- where cache status report would incorrectly show empty cache immediately after update to 1.4.4. (#340)
- where validation of the image cache directory may fail incorrectly. (#339)
- where cache_log may not populate on first load after cache clear. (#338)
- where installing 1.4.4 over existing earlier version may cause db exception error if site operated before updating add-on. (#337)
- where updating to 1.4.4 could trigger table and audit issues. (#336)
- where images in non-standard cache locations were sometimes not being correctly detected. (#335)
- where issues retrieving a remote image from unavailable location might cause an exception error. (#331)
- where the cache statistics module was double-counting some operations. (#329)
- where images were being inappropriately cleared from the cache during cache audits following unplanned removal of cache log index. (#328)
- where an update to the AWS S3 cloud files client caused problems accessing S3 file locations. (#332)
- where AWS S3 file adapter configuration field errors are not clearly reported in MCP. (#316)
- where LQIP versions of images were not being cached correctly. (#334)
1.4.3 (10 April 2024)
Improved:
- implemented work-around for where EE internal links to files substitute url_encoded versions of complex characters into filenames which then cannot be found in the file system without url_decoding first. (#324)
Bug fixes for:
- Where a code regression affected the
$rescaled_image_box
variable (#323) - Where
open_basedir
values can get substituted for base_path values. (#325) - Where some Image variables were not being successfully regenerated when displaying a cached image. (#326)
- Where some library methods trigger php 8.1 deprecation warnings. (#327)
1.3.22 (10 April 2024)
Important Note:
JCOGS Image 1.3 releases are compatible with php 7.4 and EE5, but lack features found in the 1.4 series.
Bug fixes for:
- Where some Image variables were not being successfully regenerated when displaying a cached image. (#326)
- Where some library methods trigger php 8.1 deprecation warnings. (#327)
1.4.2 (18 March 2024)
Improved:
- Update to lastest version of FlySystem for Cloud File storage (#321)
- Add workaround for quirks Coilpack's output processor (#319)
- Add option to set Webp Lossless quality by using key word "lossless" in quality parameter (#310)
Bug fixes for:
- Where
{made_url}
would return the wrong path when Cloud File System in use (#322) - Where
get_base_path()
would attempt to validate an incompletely parsed value (#318) - Where a missing or invalid
base_path
value could trigger a Flysystem exception report (#317) - Where some EXIF orientation transformations would be mis-applied (#315)
- Where the local file system adapter might be configured with incomplete path on servers with
open_basedir
configured (#314) - Where a resize operation could trigger an exception report (#312)
- Where
base_path
configured without a trailing slash could confuse directory checking (#311)
1.4.1 (10 February 2024)
Improved:
- Cloud File System secrets are partially concealed when displayed after successful registration (#300)
- General code clean up for legibility, wider use of try / catch and removal of dead methods (#304)
Bug fixes for:
- Where image demonstration mode description missing from CP License panel (#306)
- Where Metadata Orientation information was being ignored (#305)
- Where black edging added to transparent image elements during processing (#299)
- Where transparent PNGs are no longer transparent (#298)
- Where srcset generation throws an error when original image is cached but srcset version is not (#297, #294)
- Where an invalid Save_AS Image Format causes Imagine Library Crash (#296)
- Where processed image hash values unnecessarily vary according to server (#293)
1.3.21 (10 February 2024)
Important Note:
JCOGS Image 1.3 releases are compatible with php 7.4 and EE5, but lack features found in the 1.4 series.
Improved:
- Import cleaned up image validation code from 1.4.0 series (#304)
Bug fixes for:
- Where cached images based on HEIC originals would not be found (#307)
- Where image demonstration mode description missing from CP License panel (#306)
- Where Metadata Orientation information was being ignored (#305)
1.4.0 (10 January 2024)
Important Note:
This release introduces a significant change in the required platform to use the add-on.
From this version on your copy of ExpressionEngine will need to be either EE6 or better, and your server running php 8.1 or better.
New:
- Added support for cloud adapters via Flysystem (#276)
Improved:
- Extensive rewrite of image processing workflow: image processing 1.7x faster on average
- Handling of source image file names that contain characters that could be encoded (#284)
- Reporting of image processing times to use EE Debugger “Performance” panel (#285)
Bug fixes for:
- Image filenames not being encoded before sending to browser (#283)
- getimagesize() can fail if file not found (#282, #289)
- Coilpack - Image returns object for "orig_url" (#268)
- Palette Tag triggers warnings on php 8.2 (#288)
- Flysystem Error when reprocessing already cached images (#286)
1.3.20 (10 January 2024)
Important Note:
This release is the final major release that will be compatible with php 7.4 and EE5.
Bug fixes for:
- Image filenames not being encoded before sending to browser (#283)
- getimagesize() can fail if file not found (#282, #289)
- Coilpack - Image returns object for "orig_url" (#268)
1.3.12 (10 December 2023)
New:
- Added drop-in update support for
{exp:ce_img:size}
tag (#275) - Added support for ExpressionEngine's Coilpack feature (#280)
Improved:
- Improved how auto-generated
<img>
tags containing srcset attribute are constructed to improve srcset / responsive performance (#257) - Added ability for srcset images larger than original image to be generated when allow_scale_larger parameter is set
- Documentation of srcset parameter
Bug fixes for:
- expansion of srcset parameter % widths based on wrong baseline number (#281)
- faces count in face-detect operations overstates the number of found faces by 1 (#277)
- smart crop defaults to square dimensions (#248)
- face detect centroid mis-calculated under some circumstances (#249)
- if aspect ratio specified with no other dimensions, crop fails (#269)
- stale cache can sometimes prevent image being generated (#270)
- error in calculation of crop offsets when face_detect activated (#271)
- when image path prefix added, duplicate slashes not being removed (#273)
- under some conditions crop start point could be assigned negative co-ordinates (#274)
- multiple php 8.2 deprecation errors (#278)
1.3.11 (28 October 2023)
Bug fixes for:
- SVG processing failing on image size - #266
- ee('Filesystem')->exists($path) triggers wrongly reports files as missing - #265
- Attributes parameter with quotes in causes error - #264
- GD Filter folder wrongly capitalised - affecting case-sensitive server installations - #263
- Background colour not being set on transparent images - #262
- Watermark throws deprecation errors when used with php 8.2 and null values - #261
- Deprecation error - Watermark Filter - #260
- Improve php 8.2 compatibility - #267, #259
If native image size is less than first srcset image size given srcset/sizes output is incorrect - #258 - Crop would fail due to issue with auto-scale calculations - #254
- Under some conditions null images can be passed to SVG-Santize causing exception error - #252
- {made_url} variable not returning full URL - #251
1.3.10 (18 July 2023)
New:
- Added new variables to access EE File meta fields (title, description, location, credits) for images originating in local EE File system
- Added new active checking for the availability of updates to JCOGS Image
Improved:
- Additional information about local system reported when JCOGS Image debugging is enabled.
Bug fixes for:
- Bug: Text Overlay - negative position co-ordinates being ignored
- Bug: php 8.2 warnings - filesize calculations
- Bug: Exception error (negative point coords) when operating without license and source image smaller than demo mode marker
- Bug: Third party libraries not always loading correctly
- Bug: Image may trigger an exception when remote image requests returns 404 response
1.3.9 (12 July 2023)
New:
- Added new Image system setting to optionally to force output of full URLs in generated
<img>
tags.
Improved:
- When added to EE CP side bar, Image now provides ‘pop up menu’ to give quick access to common options
- Image will now optionally evaluate Image Variables when they appear in attributes parameter values
Bug fixes for:
- php 8.2 compatibility - remove deprecation warnings associated with image utilities library
- php 8.2 compatibility - fix a type match error
- Image path prefix not being applied to all output paths
- Filesize variable values not always available depending upon image type
- Attributes parameter processing requires class consolidation to be enabled
1.3.8 (10 June 2023)
New:
- Added new Image setting to optionally ensure that processing of animated gifs ignores
save_type=
parameter
Improved:
- Improved compatibility with php 8.2
Bug fixes for:
- Automanage not working when source file contains Capital letter
- Warning thrown when uploading new files and cache-automanagement enablied
- When smartscale crop is on % widths don't seem to be effective
- When lazy loading happening, Image removes closing </head> tag
- Exception error when clearing a cache when cache folder does not exist
1.3.7 (10 May 2023)
New:
- Source images can now use the HEIC format (i.e. iPhone images now supported!)
- Cache auto-manage option - when enabled, using the EE File Manager to make changes to source image files will trigger updates to the JCOGS Image cache
Improved:
- Images that don't need resizing are now not resized … 🤨
- Documentation relating to licensing modes
- Documentation relating to crop operations / options
- Debug Messaging associated with Crop/Smart Scale activity
- Advanced Topic text on Image Caching
- Debug Messaging associated with Cache Audting
Bug fixes for:
- php 8.1 TypeError when using php 7.4 and Face Detect
- odd results happening when filter processing fails
- text processing issue when empty string sent to Text Overlay method
- cache audit not clearing all legacy files from cache folders
- improperly formatted crop parameter can trigger php warnings in php 8.1
- CP status message when licensing server not reachable not reporting location of licensing server correctly
1.3.6 (10 April 2023)
New:
- face_detect filter
- face_crop_margin parameter
- face_detect_sensitivity parameter
Improved:
- crop parameter now includes face_detect directive to determine focus point for crop
- browser capability testing methods (for determining webp image format support)
Bug fixes for:
- Browser capability detection not working for some versions of macos / safari
- Allow Scale Larger flag being misinterpreted within resize
- php 8 ignores font files due to incorrect mime type report
- TypeErrors in Text Overlay filter
- License error - new builds on php 8.1
- Fallback colour field images not generated when image has no dimensions
- Lazy Loading - spurious / at start of src string
- Mask Filter - Negative values can sometimes cause an exception fault
1.3.5 (10 March 2023)
New:
- replace_colors filter
Added:
- Add image size constraint to auto-adjust options
Improved:
- compatibility of <img> tags with accessibility guideance when outputing SVGs
- license keys are now obscured in license tab of add-on control panel
- license validation methods
- behaviour when image enlargement requested by allow_scale_larger parameter not set to ‘yes’
Bug fixes for:
- License error triggers wrong help message for serial number
- CP setting for maximum image size duplicated Image settings and advanced settings
- Debug notice for invalid image path contained wrongly formed path
- Animated gifs could not be converted to other formats
- {lazy_image} variable appears as unprocessed term when Lazy option not selected
- Crop parameters not being interpreted correctly when smart-scaling enabled
1.3.4 (12 February 2023)
Added:
- Add image size constraint to auto-adjust options
Improved:
- php 8.2 compatibility
- Lazy loading - various updates plus new {lazy_image} variable
- Srcset operation - new variables {srcset_param} and {sizes_param} available for self-constructed tags
- PNG quality parameter processing now more effective
- Image less likely to trigger exception events
- Image now more informative about failure of server to meet Image's operational requirements
Bug fixes for:
- exception crash when trying to use with php 7.3 or earlier
- caching issues on some MSM sites
- issue that prevented Image from running on some Windows based machines
- srcset units should be w not px
- various Image debug message texts now properly mapped to errors / isssues
- exception crash occurs when Image cache location is unwritable
- style consolidation activity fails if ‘background-image’ included in entry due to quoting issues
- srcset failing with exception error
- browser capability checks not working for some versions of macOS Safari
1.3.3 (10 January 2023)
Added:
- Default Image Size setting - incorporates SVG sizing defaults. If set, now also applies whenever insufficient dimension information given in tag.
- Run cache audit now option in caching control panel area
- documentation relating to cache audit and class consolidation features
Improved:
- Caching and cache audit control panel now actions are now also applied to all cache directories defined via tags since last cache reset
- Significant changes to layout of caching panel to improve clarity and functionality
Bug fixes for:
- php warnings when using php 8.1, where image path prefix specified and not used
- cache status message (in template debug output) confusing after cache cleared
- under some update scenarios clearing the cache the first time after an update would trigger php warnings
- cache audit process could get confused by very old cache-log files on first audit after an update
- LQIP transformation queue being wrongly set to repeat all transformations to image before applying LQIP filter
- issue relating to class/style consolidation in some complex tag-pair use cases
- issue relating to ttf font file not being found during text overlay filter operation
1.3.2 (20 December 2022)
Added:
- Default option for class consolidation tag parameter
Bug fixes for:
- Allow Scale Larger default value being ignored sometimes
- Issue with filedir when validating some images
1.3.1 (14 December 2022)
Added:
- Option to set default Allow Scale Larger behaviour via add-on Control Panel pages
Bug fixes for:
- bug relating to casing for namespaces used in some custom Filters
- bug relating to use of attributes parameter with other unrecognised tags (e.g. class=)
1.3 (12 December 2022)
New:
- Significant changes in the JCOGS Image codebase to support future developments
Added:
- New noise and dot image filters
- New square and rectangle mask filters
- Average_color variable
- Passthrough support for animated gif files
- Default setting for png_quality.
- Support for CE Image style tag / variable name-spacing (Thanks @Sy Andersohn!)
- EE processing hook for compatibility with CE Image's saved hook
- Option to use raw EE db format ‘file’ entries as an image source
- Audit / maintenance support for multiple image cache locations
Improved:
- Online documentation
- Layout of CP Settings pages
- Image cache operation and maintenance functions
- Rewritten filtering and transformation code
- Licensing process / operation
- Debug messaging
- Tag parameter processing
- Workflows for internal image processing
- php8 compatibility wrt Dominant Colour calculations
- Tolerance of imperfect EE configurations
- Support for operations when EE cache driver disabled
Bug fixes for:
- bug relating to calculation of file information variables
- bug in processing of default fallback sources
- bug in processing of fit parameter
- bugs in lazy loading / lqip / dominant colour processing
- bugs relating to Cache usage reporting
- bug in rendering of srcset based tags
- bug in reporting of {path} variable
- bug in generation of Lazy-Loading tag output (path)
- bug in saving of Add-on version information to settings db table
- bug in processing of invalid cache_dir parameter entries
- bug in filename_prefix / filename_suffix handling of URI reserved characters
- bug in handling empty options in Text Overlay parameter strings
1.2.16 (5 November 2022)
Added:
- Initial support for SVG format images
Bug fixes for
- image path problems for EE configurations with base_url directory offset from the webroot
- file access problems where filenames include urlencode special characters
- operational issues when EE base_path value not set
- demo mode not working on public domains
1.2.15 (6 October 2022)
Added:
- Processed Image mime type variable
Improved:
- Messaging related to cache status reporting
- Option for limiting length of filename - added max-length validation rule
- Sensing of webp image rendering properties for Apple macOS browsers
Bug fix for:
- Handling of pass-through <img> parameters when processing bulk tag
1.2.14 (17 August 2022)
Added:
- Support for EE7's new file system.
Improved:
- Added more tolerant processing of mal-formed PNG files.
- Better reporting of issues when validating a license.
- Less aggressive EE cache clearing on version update…
Bug fix for
- Corrected labelling issue with save button on License page
1.2.13 (15 June 2022)
Bug fix for:
- Minor but annoying bug relating to licensing utility methods
1.2.12 (30 May 2022)
Added:
- Support for CE Image filename, filename_prefix, filename_suffix parameters.
- Demonstration mode now supports same list of TLDs as EE Pro's Trial Mode.
Improved:
- Mechanism for generating unique caching hash for processed image filenames.
- Update to do documentation site - speed / navigation
Bug fix for:
- Remove trailing / from
{path_orig}
variable (kudos to Ron Hickson for both finding and fixing)
1.2.11 (21 April 2022)
Bug fix for:
- Minor but annoying bug relating to staging server validation
1.2.10 (13 April 2022)
Improved:
- More efficient licensing validation processes
Bug fixes for:
- Cache clearing status message
- Licensing server validation
1.2.9 (11 April 2022)
Improved:
- Handling of situations where JCOGS Image cannot contact its licensing server.
- Reduce need for multiple calls to licensing server during one validation campaign
1.2.8 (6 April 2022)
New:
- Staging Server support in Licensing system
Added:
- Parameter to disable browser checks on per-tag basis
Improved:
- Demonstration Mode always active when no license present
- Reporting of reasons why license validation has failed
Bug fixes for:
- Licensing for domains with ports specified
1.2.7 (31 March 2022)
New:
- Sobel Edgify Filter
- Report on cache utilisation on System Defaults add-on settings page
Added:
- An Auto-sharpen default setting
- Auto_sharpen as tag parameter
- Ability to rotate text overlays and watermark images
- Ability to specify image path prefix (for CDNs etc)
- Cache Clearance Button
Improved:
- JCOGS License validation support
- completely re-written methods for image masking and for adding borders to masked images;
- masking on average 13% faster,
- masks with a border on average 17% faster;
- image quality significantly improved for both operations
- layout for add-on settings page
- code optimisations give 10-15% reduction in processing time on typical workloads
- better png compression
- cached image handling
- image processing workflows (internal to add-on)
Bug fixes for:
- attribute consolidation in bulk tag processing
- caching of settings after a change
- generation of lazy-loading images for images that include image masks and borders
1.2.6 (21 February 2022)
New:
- Auto Sharpen filter
- Sepia filter (two versions of)
Added:
- Rounded Corners parameter
- Reflection parameter
- border support for masked shapes / rounded corners
- option to limit max dimensions for processing of image
- option to disable active browser checking
- looking for remote images in CE Image remote cache if all else fails
- user selectable cache filename separator
Improved:
- sharpen filter now uses unsharp mask (matching CE Image)
- filename processing avoids separator clashes
- very much faster image validation
- better CP layout
- image format selection logic when chosen format not supported
- error trapping / reporting (421 Savepath issue)
- processing time reporting
- parameter validation for rotate and flip operations
- php 8.1 compatibility
- manipulation parse sequence more accurately follows that used by CE Image
- moved some functions to Image Utilities Class
Bug fixes for:
- browser image format detection for recent Safari browsers
- calculation of watermark repeat offsets
- rotated image dimension calculation
- a colour validation bug (rba contains non-numerical values)
- a colour validation bug (validation of three character colours -> black)
- initial dimension calculation (use round not int)
1.2.5 (1 February 2022)
Added:
- support for GD's built-in image filters
- control panel options for setting default php memory and execution time limits
Improved:
- Standardise on tiger160,3 hashing algorithm (faster... https://php.watch/articles/php-hash-benchmark)
- image validation methods
- processing of fallback image options
- methods and default options for remote file retrieval
- initial image loading method (reduce memory footprint, more reliable)
- compatibility with php8.1
Bug fixes for:
- calculation of watermark repeat offsets
- default values for filter - shaped masks
1.2.4 (21 January 2022)
New:
- Jump Menu support
Added:
- active check for php version being used (fails gracefully if version is not sufficient)
Improved:
- file retrieval methods for local files
Bug Fixes for:
- issue with autocache and template caching competing, changed JCOGS Image to work around conflicts
- edge condition where fallback_src= parameter might be ignored
- url_only= parameter was outputing full URL rather than local URL. Updated to ensure compatibility with CE-Image behaviour
- added a work-around for Wygwam double-encoding error
1.2 (12 January 2022)
New:
Improved:
- handling of fallback options
- Improved methods for setup / image validation
- Improved method to retrieve remote images
- Improved handling of oversized source images
- Improved cache operations (cache_mode= parameter deprecated)
Bug Fixes for:
- php8 compatibility improvements
- naming of cache images when fallback images used now reflect fallback image name
- fit calculations - further edge-case improvements
1.1 (6 December 2021)
New:
- aspect_ratio variables
- automatic cache cleaning process
- automatic generation of <img> srcset parameter for responsive images
- automatic image format substitution when incompatible format chosen
- browser image format capabilities detection
- server image format capabilities detection
- filename based cache duration management
- default image save format option
- support for default fallback local or remote image or colour field
- support for overlay text
- support for RGB / RGBA / 4 and 8 digit hex colour patterns
- server image format capabilities detection
- srcset auto-generation for responsive images
- support for watermarking
Improved:
- detection / handling of PNG8 and PNG24
- processing of bulk images
Bug Fixes for:
- filesize reporting
- fit calculations
- fast cache processing
- transparency collapsing
1.0.12 (8 November 2021)
New:
- border= parameter
- cache_mode option (fast / slow)
- documentation site launched
Bug Fixes for:
- parsing the {attributes} variable
- min / max precendence calculations
- processing of FIT parameter
1.0.11 (25 October 2021)
New:
- First Commercial Release