Change Log

To be kept up-to-date about the latest releases, you can follow us on Twitter

Version 3.0.1 - June 19, 2017

  • Fixed deprecation errors.

Version 3.0.0 - March 18, 2016

  • EE3 compatibility.
  • New documentation.
  • Docs are now packaged in the add-on download, in addition to still being available online.

Version 2.4.5 - November 03, 2013

  • Updated: cURL requests now include a user agent string for broader server compatibility.
  • Fixed: Removed query strings from local image paths on save.
  • Updated: cURL error messages (if any) are now shown in the EE template debugger debug messages.
  • Added: Set the CURLOPT_SSL_VERIFYPEER cURL option to false to prevent a hard to debug error on certain servers.

Version 2.4.4 - May 23, 2013

  • Fixed: Protocol-relative URLs should now work as expected.
  • Fixed: Using the cache_dir= parameter in combination with the unique="none" and hide_relative_path="yes" parameters would ignore the cache_dir= setting and overwrite the original image.
  • Fixed: Commas in the filename of watermark images would prevent the image from being created.
  • Updated: Removed the PHP 4 assignment operator for the EE super-object.
  • Added: Custom URLs can now be used for S3 and CloudFront, by setting $config['ce_image_aws_auto_url'] = 'n'; in the config, or aws_auto_url="n" in the tag parameters.
  • Updated: S3 and CloudFront URLs are now created as protocol-relative links.
  • Changed: When using S3 and CloudFront with the Single tag, the {aws_url} variable will now be used for the image source automatically (instead of the {made} variable).

Version 2.4.3 - March 16, 2013

  • Fixed: Better handling for min_width, max_width, min_height, max_height, width, and height combinations.
  • Added: Cropping and text watermarks now support offsets as a % of the image's height.

Version 2.4.2 - February 20, 2013

  • Added: The interlace= parameter.
  • Added: DevDemon Updater compatibility.
  • Added: NSM Addon Updater compatibility.
  • Changed: Several minor changes and code cleanup.

Version 2.4.1 - November 07, 2012

  • Changed: If the server's document root variable is not defined (generally only the case with Windows IIS), the add-on will fallback to the FCPATH constant.
  • Fixed: The fallback source wasn't always returning the fallback image as expected.
  • Added: protocol-relative URLs (remote URLs that begin with ://) are now supported.
  • Added: add_dims= parameter (and related config item) to choose whether or not to add dimensions to the Single tags.
  • Added: Attribute variables (special thanks to Michael Rog for sponsoring development of this feature).
  • Added: AWS Extension - can now integrate with Cloudfront (thanks to Cory Gwin for contributing this functionality). Take a look at the AWS config settings.
  • Fixed: AWS Extension - will now URL decode the relative file path before saving to AWS to prevent an error in some cases (thanks to Eli Van Zoeren for reporting the issue and providing a patch).

Version 2.4 - June 21, 2012

  • Added: noise, scatter, auto_sharpen, and dot filters.
  • Added: ce_img_start, ce_img_pre_parse, and ce_img_saved hooks.
  • Added: cURL will now follow redirects (will only work if safe_mode is not enabled and there are no open_basedir restrictions in effect).
  • Added: Images saved to png format will now have better compression and smaller file sizes than in previous versions of CE Image (PHP 5.1.2+).
  • Added: New argument for the gaussian_blur and selective_blur filters so that they can easily be run multiple passes to apply much stronger blurs.
  • Changed: The fonts that used to be included with CE Image are no longer bundled with the add-on. Now only the default font is included, and the other 32 are available as a separate download from here.
  • Changed: Amazon S3 was decoupled from CE Image, and is now available as an optional extension that is included in the download. Please see the extension’s installation instructions for more details on how to install the extension.

Version 2.3.7 - June 06, 2012

Version 2.3.6 - April 26, 2012

  • Changed: disable_xss_check now defaults to "yes". I think more people have found this setting annoying than useful and there seems to be something wrong with a regex in the core security class that throws an error if the XSS image check is run. If you do not trust the sources of the images being used in the content of your site, you can easily change this setting on a global, site, or tag basis.
  • Fixed: If remote images had spaces in their filenames, cURL was sometimes unable to download them.
  • Changed: The base_path (ce_image_document_root) config setting now defaults to the server’s document root (again). You can easily have this setting default to the front controller path (the previous default) by setting: $config['ce_image_document_root'] = FCPATH;

Version 2.3.5 - April 23, 2012

  • Updated the remote image saving functionality to first attempt to use cURL and then fall back to file_get_contents, instead of the other way around. Also added in some logic for that functionality to prevent an “unknown image error” debug message if the image could not be downloaded successfully.
  • Bug fix - Prevents a PHP warning about CURLOPT_FOLLOWLOCATION when using the S3 functionality if a safe_mode or an open_basedir setting is set in the server’s PHP setup.

Version 2.3.4 - April 04, 2012

  • Added {path=''} and {site_url} parsing for src='', fallback_src='', and watermark='' paths
  • Added emboss_color= filter
  • Added _pixelate= filter fallback for the pixelate filter
  • Bug fix - Prevents an "undefined index path" bug
  • Added force_remote= parameter
  • Updated a number of small items in the Amazon S3 class and renamed the class to prevent collision with other add-ons that also use that class name.

Version 2.3.3 - February 12, 2012

  • Bug fix: Instead of setting the relative file path to '' (blank) if the source file is below web root, it will instead be set to a partial hash of the file path. The reason for this is to prevent possible caching collisions when files in different directories below web root have the same file name and are manipulated in the same way. Although this is fairly unlikely, it was a problem for at least 1 user using a complex MSM setup.

Version 2.3.2 - February 09, 2012

Version 2.3 - January 25, 2012

  • The EE 1.x version of CE Image is no longer distributed in the download, and will only be supported while EE 1.x is supported (until April 2012)
  • Bug fix - to prevent the native EE parse= parameter from showing up as an attribute
  • Added type and type_orig variables to return the image types ('png', 'jpg', or 'gif')
  • Added base64 and base64_orig variables to allow images to be embeded directly into your content
  • Updated max_width= and max_height= each override max= respectively, and the winner in turn overrides height= and width=. Previously, the variables were just aliases of width= and height=
  • Added the 'ce_image_disable_xss_check' config setting
  • The base_path ('ce_image_document_root') config setting now defaults to the FCPATH constant (which is the directory your bootstrap file--usually index.php--resides in), instead of the server's document root. This should make setting up MSM sites a bit easier too. You can easily have this setting default to the server's document root (the old default) by setting: $config['ce_image_document_root'] = $_SERVER['DOCUMENT_ROOT'];
  • Updated the 'ce_image_memory_limit' config setting so that it will only override the PHP memory_limit if it is larger than the current setting. In other words the greater of the two will be used
  • When using Amazon S3, the plugin will now intelligently fallback to using the local image if the Amazon S3 call fails

Version 2.2.1 - November 19, 2011

  • Added url_only= parameter
  • Added {file_dir_xx} parsing for file paths.
  • The debugger now turns on intelligently if you are logged in as a Super Admin and have template debugging turned on. This means that the debug= parameter is no longer needed (and is now deprecated).
  • Automatic variable prefixing has been added in. This makes using CE Image with other add-ons (first and third-party) and nesting CE Image in itself much more robust.
  • The attributes= parameter has received a functionality boost. Among other things, you can now override individual CSS style rules automatically.
  • Added the Bulk tag, which allows you to bulk manipulate images in HTML.
  • Bug fix - A base_path of '/' would strip out all of the slashes when retrieving a relative URL. (So far, only 1 person has reported this problem, but a bug none the less...)
  • Bug fix - Made changes to the logic in the constructor method to determine whether or not the ce_includes file needs to be included. Should hopefully correct incompatibilities with EE1 Solspace add-ons
  • Bug fix - Query strings were being disregarded for remote images
  • Bug fix - Since the EE team broke the ability to have arrays as global variables (by using string functions to print them out in the debugger), there is now a workaround for the ce_image_made_regex and ce_image_src_regex settings when used in the global_vars array in EE2. Both settings still work as arrays when set in the config file.

Version 2.1.3 - June 16, 2011

  • Compatible with DevDemon’s Channel Images add-on
  • Added the ability to specify the Amazon S3 storage class in the config file. See the Advanced Configuration settings for more details (feature request from Jonathan)

Version 2.1 - June 07, 2011

  • Added text= parameter (special thanks to Johan Hedin and for a very generous financial contribution to make this feature possible!)
  • Added more functionality to the watermark= parameter, including increased control over how the watermark is repeated (tiled) and the ability to apply a ‘multiply’ blend mode.
  • Bug fix - Changed the image type detection logic to attempt to determine the image type from the image data itself, and then falling back to the extension, instead of the other way around (Special thanks to Brad Parscale for reporting this bug)

Version 2.0.2 - May 19, 2011

  • Bug fix - Made some changes so that the EE1.x version would play nicely with Solspace addons that use their CodeIgniter implementation (Special thanks to Todd for reporting this bug and Angie for helping to squash it)
  • Added {filesize_bytes} variable (feature request from Joshua Stearns)
  • Added {filesize_bytes_orig} variable (feature request from Joshua Stearns)

Version 2.0.1 - May 13, 2011

  • Bug fix - Changed an erroneous instance of 'ce_image_made_regex' to its intended 'made_regex'
  • Bug fix - Changed an erroneous instance of 'ce_image_made_regex' to its intended 'ce_image_src_regex'

Version 2.0 - May 10, 2011

  • Added opacity filter
  • Added sepia filter (feature request from @sm9)
  • Added replace_colors filter
  • Added {orig} variable (feature request from Ian Coles)
  • Added {width_orig} variable (feature request from Ian Coles)
  • Added {height_orig} variable (feature request from Ian Coles)
  • Added {name_orig} variable (feature request from Ian Coles)
  • Added {path_orig} variable (feature request from Ian Coles)
  • Added {extension_orig} variable (feature request from Ian Coles)
  • Added {filesize_orig} variable (feature request from Ian Coles)
  • Added {made_url} variable
  • Added {orig_url} variable
  • Added {aws_url} variable
  • Changed the {name} variable to return the name of the made image, as opposed to the original image name (to be consistent with the new '_orig' variable names). To get the original image’s name, you can now use the {name_orig} variable
  • Added auto_cache= parameter
  • Added bg_color_default= parameter
  • Added manipulate= parameter
  • Added bucket= parameter - for use with Amazon S3 (feature request from Ian Kullhem
  • Added output= parameter (feature request from adfowler )
  • Added the ability to specify max=, max_height=, and max_width= parameters (and their aliases) as a percentage of the actual image dimensions. So if you specify max_height="50%" and the actual image height is 100px, then your manipulated image will be 50px tall
  • Added ability to pass in attributes directly into the plugin tag. You no longer need to pass image attributes to the plugin via the attributes= parameter (although you still can)
  • You can now use width= and height= parameters. They will be used by the plugin if max_width= and max_height= are not set, respectively.
  • Added ability to set ce_image_made_regex override in the site’s global array (can override config.php)
  • Added ability to set ce_image_src_regex override in the site’s global array (can override config.php)
  • Added ability to set ce_image_document_root override in config.php (can be overridden by the site’s global array) (feature request from Michael Witwicki)
  • Added ability to set auto_cache in config.php
  • Added ability to set ce_image_image_permissions in config.php (feature request from JamesB)
  • Added ability to set ce_image_dir_permissions in config.php (feature request from Brad Graham)
  • The plugin no longer attempts to check the timestamp of remote images each time it is executed ( feature request from Daniel). Take a look at the remote_cache_time= parameter for more details
  • The XSS filter is now available for the EE1 version of the site
  • The “show_debug_in_source” PHP variable has been removed from the plugin
  • More plentiful and more detailed debug messages
  • If the cache_dir= parameter is set to '' as apposed to not set at all, it will actually be set to '', instead of defaulting back to '/images/made/'
  • Bug fix - Images are no longer cached if they are the same as their source images. (special thanks to Tidy for reporting this bug)
  • Bug fix - Plugin now throws a debug message and exits if the 'current_domain' value has been set to an invalid value (special thanks to R.BIRD for reporting this bug)
  • Bug fix - Watermark transparency is now properly preserved when transparent png images are used as watermarks for transparent png images
  • Bug fix - Added ability to try and use fallback image if the original src image is not a valid image (for example, the server returns an error page instead of an image, instead of the default 404 header - Amazon S3 does this). (Special thanks to Todd for reporting this bug)

Version 1.5.6 - March 02, 2011

  • Added some additional code to try and use cURL as a fall-back to get a remote image, in the event the file_get_contents function doesn’t work
  • Added optional Advanced Configuration Settings, including 'ce_image_src_regex', 'ce_image_made_regex', and 'ce_image_document_root'
  • Added disable_xss_check= parameter (EE2 only)
  • Bug fix - Changed default debug settings to only show via EE’s template debugging, as showing the debug messages in the HTML source code caused Core.php to throw a PHP error in some environments. However, showing errors in HTML comment tags can still be enabled by setting the $show_debug_in_source variable to TRUE in the plugin file
  • Some minor code clean-up

Version 1.5.2 - January 22, 2011

  • Bug fix - Fixed a bug where gif images were sometimes rendered incorrectly when saved to gif format (special thanks to the folks at for reporting this bug)
  • Bug fix - Fixed a bug where images with uppercase letters in the filename extension were not always saved to the correct format (troubleshot and reported by

Version 1.5 - January 04, 2011

  • Added border= parameter
  • Added reflection= parameter
  • Added ascii_art= parameter
  • Added top_colors= parameter
  • Updated sobel_edgify filter. You can now set foreground and/or background colors to be any hex value or transparent
  • Added {average_color} variable
  • Added {w} variable
  • Added {h} variable
  • Added max= parameter
  • Added attributes= parameter
  • Added ability to set the PHP memory limit from either the config.php file or in the plugin itself (feature request from @sm9)
  • Made the change to use {exp:ce_img:single} and {exp:ce_img:pair}{/exp:ce_img:pair} plugin calls. The plugin is still 100% backwards compatible with the {exp:ce_img:make}{/exp:ce_img:make} plugin calls.
  • Bug fix - Original extension casing was not being preserved, so two images with the same name but different case extension (2.jpg and 2.JPG) would cache to the same filename (special thanks to noregt for reporting this bug)
  • Bug fix - Rounding issue that would sometimes cause the last row of pixels in a resized image to show without color (special thanks to @sm9 for reporting this bug)
  • Bug fix - If debug mode was enabled and the headers were already sent, an error would be thrown. The plugin will no longer attempt to echo an error to the HTML source code if the headers have already been sent (special thanks to Tor Kristensen for reporting this bug)

Version 1.4.1 - December 04, 2010

  • Bug fix - Released a little too quick. Needed to make an update to the remote images method call to pass correct parameters, another to allocate memory at the correct time, and a few compatibility issues with the 1.6.x+ version…

Version 1.4 - December 04, 2010

  • Added rounded_corners= parameter
  • Added rotate= parameter
  • Added flip= parameter
  • Added sobel_edgify filter
  • Added sharpen filter (feature request from @smartpill)
  • Bug fix - if an image without extensions or a directory was passed in as a source, the plugin would through an error. Images without extensions are now supported and the source is checked to make sure it is not a directory. (special thanks to @sjelfull for reporting this bug)
  • Bug fix - improved handling of gif image transparency (does anyone even use gifs these days?)

Version 1.3 - November 28, 2010

  • Bug fix - watermark only worked for images that were resized or cropped (special thanks to Gwénaël Leroy for reporting this bug along with the patch)
  • Added create_tag= parameter
  • Added fallback_src= parameter (feature request from “Joobs”)
  • Added unique= parameter (feature derived from request by “sajwal”)
  • Added ability to set image quality from the config.php file (feature request from @paperandpixels)
  • Deprecated the main size function in favor of the more fitting make function, as this plugin now does much more than size images (filters, watermarking, saving to different formats, etc, can all occur without cropping or resizing). Accompanying this change was the move from the deprecated sized variable to the made variable and the move from the '/images/sized/' default directory to the '/images/made/' default directory. The function name and variable changes are completely backwards compatible and should not break any existing code. The default cache directory can be overridden from the tag itself, by setting the $cache_dir property in the pi.ce_img.php file, or by setting the ce_img_cache_dir preference from your site’s config file

Version 1.2.3 - November 23, 2010

  • Bug fix - sometimes images were not being correctly cropped (special thanks to “Joobs” for reporting this bug)
  • Added ability to optionally control CE Image settings from the config.php file. This can make upgrading simpler. These settings can still be overridden by their respective parameters (feature request from @sm9)
  • Added ability to read source images from above web root. This can prevent end users from being able to access the images directly, but still allows you to cache manipulated versions of the images in your web accessible cache directories
  • Added ability to use './' and '../' references in relative links for both source and watermark images, even if they are above web root
  • Created a CE Image plugin for ExpressionEngine 1 (1.6+)!

Version 1.2.2 - November 20, 2010

  • Bug fix - preserve transparency when saving a manipulated gif to gif format

Version 1.2.1 - November 19, 2010

  • Changed order of filename cleanup to better preserve original image name
  • Bug fix - support for the pathinfo() 'filename' key to work properly on PHP version before 5.2.0 (special thanks to @paperandpixels for reporting this bug)

Version 1.2 - November 17, 2010

  • Error suppression
  • Minor performance improvements
  • Better error handling
  • Added debug= parameter
  • Fixed a bug where a full server path passed in as the source was not being handled correctly
  • Added support for remote images (feature request from @paperandpixels and @shecodes)
  • Added remote_cache_time= parameter
  • Added remote_dir= parameter

Version 1.1 - November 14, 2010

Version 1.0 - November 11, 2010

  • Initial release…