Image Support module change log

Version 2.7.2:
 - Change: Improved HEIC image detection for better conversions with ImageMagick and tifig
 - Change: tifig HEIC image conversions now use a timed system call to prevent locking up

Version 2.7.1:
 - New: "image_delete" event trigger fired when images are manually deleted in a form

Version 2.7.0:
 - New: HEIC / HEIF image conversions to JPG added using PHP ImageMagick support
 - New: Added support for WebP images (.webp)
 - New: "jpeg_quality" advanced config key added for controlling converted JPG quality setting
 - Change: Updated view structure to support new updates in Jamroom Core 6.5.12+
 - Change: Updated Image form display to allow more skin customization
 - Bug Fix: module "default" item image caching could cause too many cached images in cache/jrImage
 - Bug Fix: Watermarking of images for sale may not work correctly

Version 2.6.5:
 - Change: Removed "Fast Resizing" global config option due to low quality image conversion

Version 2.6.4:
 - Bug Fix: Multiple image upload fields may not show images in correct order when updating

Version 2.6.3:
 - New: "form_image_right_container" class added to image form display area

Version 2.6.2:
 - Change: Further tweaks and updates to custom default SVG image handling

Version 2.6.1:
 - Change: Updates to support changes in PHP 8
 - Bug Fix: Custom default SVG images may not always show correctly

Version 2.6.0:
 - New: Support added for "item" parameter when using the {jrImage_display} template function
 - New: Ability for templates to run image size conversions via a queue entry
 - Bug Fix: Custom "default" images for modules may show default SVG instead

Version 2.5.1:
 - New: Update to cache default SVG images for modules to speed up rendering

Version 2.5.0:
 - New: "Enable Lazy Loading" global config setting to enable image lazy loading
 - New: Images shown in forms can now be viewed in a lightbox when clicked
 - New: Support added for using SVG files as the default module item image
 - New: "image_display_params" event called in {jrImage_display} template function
 - Bug Fix: Minimum Image Width may not always resize correctly on upload
 - Bug Fix: Some images may not be rotated correctly based on Orientation EXIF flag

Version 2.4.0:
 - New: Updated upload_saved event listener to properly handle EXIF Orientation flag on upload

Version 2.3.3:
 - Change: Removed unneeded install.php script - internal settings handled in config.php

Version 2.3.2:
 - Bug Fix: Changing profile privacy may not reset entire local image cache for profile_id
 - Bug Fix: Image resize tool could include images that had already been resized

Version 2.3.1:
 - Bug Fix: Image delete Javascript function may not work correctly on page with multiple forms

Version 2.3.0:
 - New: iOS 11+ HEIC and HEIF images can be uploaded and will be converted to JPG
 - Bug Fix: Cached images may not show in the Documentation module if group permisions were set

Version 2.2.1:
 - New: Added 12mb, 16mb, 20mb, 24mb and 32mb options for Max Image File Size

Version 2.2.0:
 - New: "Fast Resizing" Global Config added to enable or disable using epeg for JPG image resizing

Version 2.1.2:
 - New: 'delete_profile_image_cache_directory' event fired when the cache directory for a profile is deleted
 - New: 'delete_image_cache_for_item' event fired when the image cache for an item is deleted
 - Bug Fix: Deleting an image from an item form was not always resetting the image cache for the item
 - Bug Fix: Existing custom field image may not show in custom Profile and User form fields

Version 2.1.1:
 - Bug Fix: Some images correctly resized by epeg binary may report as having encountered an error

Version 2.1.0:
 - New: "cached_image" event added that is fired with image full path when a cached image is created
 - New: Added "jfi" and "jif" as valid JPEG image extensions
 - Change: Small performance optimization when resizing images
 - Bug Fix: "Resize Item Images" tool could "hang" due to running out of allowed PHP memory

Version 2.0.11:
 - New: "itemprop" HTML attribute can be used in jrImage_display function when called from a template

Version 2.0.10:
 - New: Delete button added to images on update forms to make it easy to remove existing images

Version 2.0.9:
 - New: jrImage_display function will now let crossorigin="" through as a parameter

Version 2.0.8:
 - New: Support added for "fillcolor" parameter to define RGB color for background when using "fill" crop
 - Bug Fix: Possible corruption of some JPG images when using the Image Resize Tool

Version 2.0.7:
 - Change: Resize Images Tool updated with support for all modules with a DataStore or Attachment support
 - Change: Added larger image sizes in the "Max Item Sizes" dropdown select in the Resize Images tool

Version 2.0.6:
 - Bug Fix: Image enlargement without a "crop" parameter may not enlarge image

Version 2.0.5:
 - New: "get_allowed_image_widths" event trigger added to allow custom image widths

Version 2.0.4:
 - New: "item_image_info" event trigger fired with item info before displaying image
 - Change: Improved performance when displaying "original" image if allowed in Global Config
 - Bug Fix: Some images may not be linked to correctly in the image cache
 - Bug Fix: Possible memory error when resizing with watermark or filters on very large images

Version 2.0.3:
 - Bug Fix: Some images were not being create correctly in the cache
 - Bug Fix: Some uploaded images were not having their height detected correctly

Version 2.0.2:
 - Change: caching of module default images improved to use less disk space

Version 2.0.1:
 - Bug Fix: Watermark may show on free images if "Only Images for Sale" Quota Config is active

Version 2.0.0
 - New: Optimized image cache handling to speed up non-private image requests by up to 50%
 - New: Support for "epeg" image resizing to speed up thumbnailing of large JPEG images
 - New: "Resize Animated GIFs" global config option to disable resizing of animated GIF images
 - New: "Minimum Image Width" global config option to enforce a minimum image width allowed for upload
 - New: image crop feature now accepts x-offset and y-offset: crop=16:9 can now be set as crop=16:9:0:0
 - New: Support added to display images for items in Recycle Bin that have images
 - Change: Updated to support new System Tools module plus functions from System Core 6.1.0
 - Change: Resizing of animated GIF images moved to Queue worker
 - Change: "default.png" and new "working.png" default images have been updated
 - Bug Fix: "original" size for JPEG images were not being handled correctly when embedded
 - Bug Fix: some image upload locations that should only allow one image to be uploaded were allowing many

Version 1.5.3:
 - Change: In progress lock added to prevent simultaneous resize requests for animated GIF images
 - Bug Fix: numeric image size could cause smarty error when using {jrImage_display}

Version 1.5.2:
 - Bug Fix: False error "tinymce_imagetools failed to save the adjusted file" if editor was visible on Timeline

Version 1.5.1:
 - Bug Fix: PNG transparency being set to black on some images when resizing to "small" size or smaller

Version 1.5.0:
 - Change: Image resizing performance increased for large images being resized to small sizes

Version 1.4.15:
 - Bug Fix: 'original' sized images could incorrectly have a width attribute set
 - Bug Fix: jrImage_is_alpha_png() may return FALSE on some PNG images that have transparency

Version 1.4.14:
 - New: Image Editing options now available for images when using the WYSIWYG editor
 - New: Form Designer image field now supports multiple images (number allowed defined in options)

Version 1.4.13:
 - New: "default_image" event fired before displaying the default image
 - New: Image fields added by the Form Designer can have their own default image
 - New: Image size 'original' shows original uploaded image if enabled in Global Config

Version 1.4.12:
 - Change: Reset Image Cache queue sleeps for a bit to ensure all access is to new cache directory
 - Bug Fix: Default Profile Privacy not being checked when checking if a profile is private

Version 1.4.11:
 - New: Ability for skin to override a module image by placing image at Skin/img/Module_Name.ext

Version 1.4.10:
 - Change: Reset Image Cache tool moved to Queue Worker to better handle large sites

Version 1.4.9:
 - Bug Fix: Default user image not over-rideable via ACP upload
 - Bug Fix: When default image for the image module is replaced, 'active' setting not being respected

Version 1.4.8:
 - Change: "max" form field parameter support to set different max upload amount on a per field basis

Version 1.4.7:
 - Custom skin images may not show correctly when re-uploaded in "Images" tab in ACP

Version 1.4.6:
 - Change: {jrImage_display} now allows item_id = 0 to display "default" user or item image

Version 1.4.5:
 - New: JPG images will be rotated based on EXIF Orientation flag (if present in image EXIF data)

Version 1.4.4:
 - New: "Resize Item Images" Tool to limit image sizes and reduce server disk usage

Version 1.4.3:
 - Bug Fix: "Convert to JPG" Config option may not work properly with some GIF images

Version 1.4.2:
 - New: Updated to work properly with latest Profile Privacy options

Version 1.4.1:
 - Change: Internal updates to work with new Active Media System core global config option

Version 1.4.0:
 - New: "Watermark Cutoff" Quota setting to disable watermark on images less than XX pixels in width
 - New: "Only Images for Sale" Quota setting to only apply watermark to images that are for sale

Version 1.3.2:
 - Change: Removed "convert" ImageMagick binary - now uses OS version if installed

Version 1.3.1:
 - New: Image Magick "convert" binary included in jrImage/tools directory
 - New: System Check listener to verify convert binary is executable
 - Change: improved 304 "Not Modified" header support for better browser caching
 - Change: Animated GIF images under 56px wide are converted to image of first frame
 - Bug Fix: Some animated GIFs were being corrupted when being resized

Version 1.3.0:
 - New: Support for resizing Animated GIFs has been added

Version 1.2.5:
 - New: support for skipping default cropping adding by using crop="none"

Version 1.2.4:
 - New: "module_image" and "skin_image" event triggers fired for module or skin image/img views
 - Change: Dashboard panel that shows size of cached images updated so modifier is on separate line
 - Bug Fix: "img" and "image" views not working with custom headers set by other modules

Version 1.2.3:
 - Bug Fix: Multiple images in same form only showing image delete (if enabled) on first image

Version 1.2.2:
 - New: Update to support new custom Dashboard Panels in Jamroom Core 5.2+

Version 1.2.1:
 - Bug Fix: using the new ratio crop support could result in resized images showing vertical distortion

version 1.2.0:
 - New: new "ratio" crop support for passing in crop values such as 16:9, 4:3, etc.

Version 1.1.6:
 - Bug Fix: passing "false" as width param to jrImage_display function not working properly

Version 1.1.5:
 - New: "Convert to JPG" Global Config to convert PNG and GIF images to JPG format on upload

Version 1.1.4:
 - Change: Update to support new Form Designer plugin format for "image" field

Version 1.1.3:
 - New: 304 Not Modified support for images so browsers can show cached images
 - New: Support for "jfif" image file extension (JPEG File Interchange Format)

Version 1.1.2:
 - New: "Delete Cached Images" global config to control frequency of cache cleanup

Version 1.1.1:
 - Bug Fix: rounded and cut filters dropping pixel size parameter for top left corner

Version 1.1.0:
 - New: Watermark settings in Quota Config for adding watermarks to images
 - New: "fill" crop type to preserve aspect ratio and letterbox the resulting image

Version 1.0.9:
 - Bug Fix: Some large images may fail to convert due to not enough PHP memory being allocated

Version 1.0.8:
 - Bug Fix: Image override for default image from image tab was not working

Version 1.0.7:
 - New: Multiple filter support on same image when parameters are separated by a comma
 - Bug Fix: rounded, cut and reflection filters were not working properly

Version 1.0.6:
 - Bug Fix: CSS image url not working for overridden images

Version 1.0.5:
 - New: "portrait" crop parameter moves the cropping to the upper portion of the image instead of the center

Version 1.0.4:
 - New: "img" view for supporting custom images defined in CSS files

Version 1.0.3:
 - Expires header on images not working for images that had not been modified in last 100 days

Version 1.0.2:
 - Added new "img_src" event trigger - Fired in jrImage_display before returning URL to use in img src parameter.
 - Added img URL versioning to prevent browsers from caching changed images.
 - Added support to form image display section to show multiple images if the "multiple" form flag is enabled.

Version 1.0.0:
 - Initial release