Download source, binaries, plugins, and sample code (15MB) or Download core binary only (170K)
Changes since alpha 5 (May 15)
Stability-related bug fixes
- Fixed serious bug introduced in alpha 5: Underlying stream is disposed before the bitmap instance is disposed. Affected all Build() overloads. This was primarily introduced with the Replaced LoadImageFailed overloads API change in 3.0.5, when streams became used universally instead of only for virtual files and passed Stream instances. This issue can manifest as an InvalidOperationException, or any of many 'random' GDI-related messages. Often appears when using the Watermark or AnimatedGifs plugin. See Core/gdi-bugs.txt for details on how this and all related issues were solved. Bitmaps are now Tagged with a BitmapTag instance that references the underlying stream, stopping accidental garbage collection issues.
- Fixed leak of intermediate Bitmap in Bitmap Build(source, settings) overload. Would still be quickly garbage collected due to being gen 0, but still incorrect behavior.
- Fixed potential threading bug in the Watermark plugin (related to concurrent cached Bitmap access). Important update for users of the Watermark plugin.
New features
- Added first draft of 'cropxunits' and 'cropyunits'. These can be set to a decimal value. If set to a decimal value, crop units for that dimension will be interpreted as relative to the value. This allows easy cropping without knowing the original size of the image. For example, ?crop=10,10,90,90&cropxunits=100&cropyunits=100 will crop a 10% border off each edge.
- Added first version of ImageResizerGUI, a WPF app for batch resizing images.
- Added COM support, and Samples\ScriptAccess folder of examples and registration scripts.
- Added example ConsoleApplication
- /resizer.debug now lists supported file extensions and querystring keys
- When disabled, /resizer.debug provides instructions on enabling itself.
- LOTS of documentation fixes.
API changes
- Build now always disposes 'source' unless disposeSource=false (added 2 new overloads with disposeSource boolean). This behavior is 'safer', and generally preferred.
- The SizeLimiting plugin is now only loaded by default in ASP.NET applications. It doesn't make sense to restrict WinForms, Console, and WPF applications by default.
- LoadPlugins is called immediately if not running ASP.NET. Previously, it was only called on the first request in an ASP.NET application, and was never called in WinForms/WPF/Console apps.
- Changed behavior: BuilderExtension.DecodeStreamFailed is only called once if DecodeStream returns null.
API Additions
- Added Plugins.Install and Plugins.Uninstall convenience methods
- Added Plugins.VirtualImageProviders - no longer using dynamic query.
- Added default Config() constructor for COM compatibility.
- Added Config.BuildImage(source,dest,string) shortcut for COM-friendly access.
- Added Config.WriteDiagnosticsTo and Config.GetDiagnosticsPage() to simplify debugging.
- Added Build(source, settings, bool disposeSource) overload (see API changes)
- Added Build(source, dest, settings, bool disposeSource) overload (see API changes)
Bug fixes
- Fixed numerous bugs in the Watermark plugin (which may have resulted in Overflow errors or rendering anomalies.)
- Now works outside ASP.NET
- Now handles simulation layouts
- Now supports physical paths
- Now produces integer dimensions and position for the watermark
- No longer incorrectly upscales watermark to fill entire image when keepAspectRatio is true.
- No longer acts incorrectly when padding and size add up to > 1 and valuesPercentages=true.
- ImageBuilder now uses the correct Config instance when selecting an encoder. Previously used Config.Current instead of the EncodeProvider passed in the constructor. Symptom: Plugin encoders were ignored by ImageBuilder unless present in Config.Current.
- AnimatedGifs now works with independent Config instances.
- BatchZipper no longer sends both failure and success notifications for the same item.
- Removed many unneeded dependencies from PsdReader and PrettyGifs plugins
- LoadImage no longer disposes the stream if a stream was passed directly to it.
All releases
- Resizer 4.1.9 - Jun-22-2017 - Important fix for constant CPU use
- Resizer 4.1.8 - Jun-17-2017 - 2 bug fixes
- Resizer 4.1.7 - Jun-6-2017 - 166 commits
- 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 -