Read the release notes for v3.1 if you're upgrading from 3.0.X. V3.1 included major changes to all plugins and the core, and included a long list of bug fixes. It also introduced 11 new plugins and 5 rewritten ones.
- Fixed a theoretical memory leak in the PrettyGifs plugin (undisposed Bitmap instance), inside the quantization algorithm I ported many years ago. I believe it's gone undiscovered this long because most GIF images are small, and of insufficient volume to stay ahead of the garbage collector. This bug hasn't been seen in practice; I discovered it during a routine self-code-review of the PrettyGifs source code. You should immediately update to 3.1.3 if you use the PrettyGifs plugin and generate a high volume of GIF or 8-bit PNG images.
- Fixed 'black background when rotated odd angles' bug, which was introduced in version 3.1.2.
- RemoteReader now works properly with the 404Plugin, instead of failing to redirect to the 404 image.
- S3Reader no longer silently fails when there is a problem with the S3 bucket; the error is thrown properly, and is displayed if error display is enabled. Also, bucket names are now case-insensitive and whitespace is ignored.
- S3Reader now supports non-US buckets when useSubdomains="true". The default is false for compatibility with legacy buckets.
- When an empty stream is passed to the ImageResizer, a more informative message is used in the exception.
- Null values assigned to querystring keys during the Rewrite event. No longer block default values assigned in the RewriteDefaults event.
New destination path syntax
Tired of doing path math? You can now do most renaming tasks with a simple syntax instead of writing your own string logic.
Uploading a file with a GUID filename is now much simpler:
ImageJob i = new ImageJob(file, "~/uploads/<guid>.<ext>", new ResizeSettings("width=1600")); i.CreateParentDirectory = true; //Auto-create the uploads directory. i.Build();
List of variables
- <guid> - lowercase hexadecimal GUID with no dashes or brackets
- <ext> - the correct extension for the file based on how it will be encoded
- <filename> - the original filename (minus folder and extension)
- <path> - the original path (dir and filename) without the original extension.
- <originalext> - the original extension
- <width> - the final width of the written image
- <height> - the final height of the written image
- <settings.*> - any value from the settings used to resize it.
You can also filter values
- Will keep only alphanumerics, dashes, and underscores from the filename.
This can be useful, as uploaded filenames are usually unacceptable for use on the server, even when combined with a guid.
New plugins & cool features
- Jason Morse brought us the PdfRenderer plugin, which I promptly reviewed and tested, and decided to include immediately due to its great code quality.
- The extremely boring IEPngFix plugin, for those who still care about IE6.
- It's official; you can now use 'w' and 'h' instead of 'width' and 'height'. 9 less characters to type!
- Presets plugin now works with managed API as well as URL API. (Managed API does not enforce the OnlyAllowPresets setting).
- The ImageResizer can now 'auto-create' the parent directory for an image it is writing. Use ImageJob and set
CreateParentDirectoryto true. Nice for uploads.
Boring new stuff
- Added ResizeSettings.CropXUnits and ResizeSettings.CropYUnits
- Added ResizeSetting constructor that accepts width, height, FitMode, and image format.
- PrettyGifs: Added preservePalette setting.
- ImageJob: added Stream->Stream constructor overload
- ImageHandlerSyntax: Now &mode can be used even in the image handler syntax.
- Diagnostics page now reports on trust level and incompatible assemblies.
- Improved error reporting for plugins that subclass VirtualPathProvider on GoDaddy hosting.
- PathUtils: Added GuessVirtualPath and GenerateImageUrl
- Added Config.Current.Pipeline.ModuleInstalled variable.
- PathUtils.MapPathIfAppRelative, ResolveVariablesInPath, and RemoveNonMatchingChars were added as supporting methods for the dest path syntax.
- You can turn off the new destination path syntax with ImageJob.AllowDestinationPathVariables = false
Changes that may break your build.
- ImageJob.DisposeSourceStream was renamed to DisposeSourceObject as the previous name was incorrect; both Bitmaps and Streams are disposed by it. It's unlikely many people use this property already as it was only recently introduced.
- Resizer 4.0.5 - Jan-31-2016 - 3 bug fixes
- Resizer 4.0.4 - Oct 25 2015 - Major release with security and massive performance improvements
- Resizer 3.4.3 - May 8 2014 - New release adds metadata copy support, fixes 4 bugs.
- Resizer 3.4.2 - November 26 2013 - New Release adds support for AWSSDK 2
- Resizer 3.4.1 - October 30 2013 - New release features 1 bug fix and 1 enhancement.
- Resizer 3.4.0 - October 17 2013 - New release comes with 4 new plugins and 11 bug fixes.
- Resizer 3.3.3 - March 2 2013 - 2 bug fixes, one in S3Reader, one in WicDecoder
- Resizer 3.3.2 - Jan 24 2013 - 2 bug fixes
- Resizer 3.3.1 - Dec 19 2012 - 8 bug fixes, 1 new plugin
- Resizer 3.3.0 - Dec 3 2012 - 10 bug fixes, 2 new filters, 2 new alpha plugins
- Resizer 3.2.4 - Aug 6 2012 - 7 bug fixes, S3Reader changes, 2 new alpha plugins
- Resizer 3.2 beta 3 - June 30 2012 - 4 bug fixes
- Resizer 3.2 beta 2 - June 20 2012 - 3 bug fixes
- Resizer 3.2 alpha 1 - June 4 2012 - 1 bug fix
- Resizer 3.2 alpha 0 - June 3 2012 - 11 bug fixes (reliability improvements in WicBuilder, Watermark, WhitespaceTrimmer, SqlReader), heavy refactoring, 5 new draft plugins
- Resizer 3.1.5 - Feb 22 2012 - 19 bug fixes, 8 new features, 2 potentially breaking changes
- Resizer 3.1.4 - Jan 22 2012 - 5 bug fixes, 2 minor new features
- Resizer 3.1.3 - Jan 14 2012 - 2 new free plugins, 7 bug fixes
- Resizer 3.1 alpha 2 - Dec 7 2011 - 5 new free plugins, 6 new bundle plugins, 5 rewritten plugins, and innumerable bug fixes
- Resizer 3.0.13 - Oct 12 2011 - 6 bug fixes, raw support, and 1 breaking change (renaming the FriendlyUrls plugin)
- Resizer 3.0.12 - Aug 15 2011 - 12 bug fixes, 10 new features, 3 new plugins since 3.0.11
- Resizer 3.0.11 - July 29 2011 - 5 bug fixes and 2 new plugins since alpha 10
- Resizer 3 alpha 10 - Jun 16 2011 -
- Resizer 3 alpha 9 - Jun 8 2011 - 8 bug fixes and 8 new features
- Resizer 3 alpha 8 - Jun 2 2011 - 4 core bug fixes, 2 new sample projects, and the important fixes to the DiskCache, SqlReader, and AnimatedGifs plugins
- Resizer 2.8 - May 27 2011 - The last build of the version 2 line.
- Resizer 3 alpha 7 - May 26 2011 - 3 stability fixes, jCrop support, COM support, better diagnostics.
- Resizer 3 alpha 5 - May 15 2011 - 7 bug fixes, 5 API changes, and 3 new plugins
- Resizer 3 alpha 3 - May 2 2011 -
- Resizer 3 alpha 2 - Apr 24 2011 -