Add-on Documentation from JCOGS Design

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:
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:
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:
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:
Added: 
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: 
Improved: 
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: 
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: 
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: 
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: 
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: 
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: 
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:
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:
Added: 
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: 
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: 
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