ImageUltimate v1.8.0 is released

This release includes the following changes:

  • Added: Example projects (Mvc.CS, Mvc.VB, WebForms.CS, WebForms.VB) to demonstrate main features.

  • Added: PreserveMetadata method to ImageTaskBase class which ensures metadata like EXIF, IPTC, XMP fields and Adobe® image resource blocks of the source image are preserved, i.e. they are saved to the resulting image. Only applies if the resulting image format is Jpeg or Tiff. For example when saving a Psd or Eps to Jpeg, you can preserve clipping paths this way.

  • Added: Thumbnail method to ImageTaskBase class which smartly generates a thumbnail from the current image. This method is optimized for thumbnails so you should prefer it over Resize, ResizeWidth or ResizeHeight methods. Most image formats (Jpg, Tiff, Psd and Camera Raw files) can have EXIF thumbnails so this method will first try to read that image from EXIF metadata, remove black stripes above and below it and resize it down further if needed. This will ensure very fast performance when your whole purpose is generating thumbnails. Only if there is no thumbnail in metadata or the thumbnail is smaller than the requested size, the thumbnail will be created by resizing the original image as usual (Jpeg downscaling will be used if possible for best performance). EXIF thumbnails are typically in size 160x120. All modern cameras write EXIF metadata when capturing an image most cameras save a thumbnail to the EXIF block. When a camera creates an EXIF thumbnail it fixes its size to the default industry size 160x120 pixels independently of an original image dimensions. Thus, it is possible that proportions of an original image and its thumbnail will be different for some camera types. If so the thumbnail will have black stripes above and below it, fortunately this method automatically removes those black stripes for offering you the best thumbnail out of the box. Besides digital photos, also software like Photoshop can store EXIF thumbnails when saving some formats (eg. Psd, Jpg, Tiff). For example, instead of merging layers of a Psd file by using the already available preview thumbnail in the file this method will run very quickly.

  • Added: Resize, ResizeWidth, ResizeHeight commands will be even faster for Jpeg files. When one of these commands is the first one in the chain and the source image is a Jpeg file, the image will first be downscaled 2, 4, or 8 times while decoding it and additional resizing will be done after that. This will ensure very fast performance because Jpeg downscaling works several times faster than conventional image resize operation.

  • Added: ImageTask.FromBitmap and ImageInfo.FromBitmap methods which accept System.Drawing.Bitmap to create an instance.

  • Added: ImageTask.ToBitmap method to get the resulting image as a System.Drawing.Bitmap instance instead of saving to a file.

  • Added: ImageWebExtensionMapping utility class for getting the corresponding web-safe (jpg, png or gif) image save format for a file extension.

  • Added: EnumerateLoadFormats and EnumerateSaveFormats methods for ImageExtensionMapping class.

  • Fixed: ImageInfo.ExifDictionary and ImageInfo.IptcDictionary properties were broken, i.e. an exception was being thrown about a missing method due to DLL obfuscation. Also when there is no metadata in the image, these will be set to empty dictionaries as expected.

  • Changed: ImageWebTask.Format signature is changed to accept a new enum ImageWebSaveFormat (jpg, png and gif) instead of ImageSaveFormat. Saving for other formats would be useless for web use (html img tag would not work) so out of the box, saving will be limited to 3 main formats: jpg, png and gif. However you can still force to save as other formats by via casting, e.g. if you want to save it as WebP you can pass (ImageWebSaveFormat)ImageSaveFormat.WebP, note that WebP is a Chrome-only format so it’s better to stay with 3 main web-safe formats. If format is not specified, the best corresponding web-safe format will be chosen automatically, i.e. WebP, Bmp, Tiff, Tga and Eps will be now displayed correctly as they will be saved as web-safe (jpg or png), this was already done for Psd and Raw in previous versions.

  • Improved: ImageExtensionMapping class now knows the common raw file (camera format) extensions:

    • dng (Adobe)

    • arw, srf, sr2 (Sony)

    • cr2 (Canon)

    • nef, nrw (Nikon)

    • raf (Fuji)

    • orf (Olympus)

    • pef (Pentax)

    • kdc, dcr (Kodak)

    • mrw (Minolta)

    • erf (Epson)

    • rw2 (Panasonic)

    • dng (Leica)

    • srw (Samsung)

    • x3f (Sigma)

  • Changed: Renamed some classes and properties (note that meaning is reversed for some properties, e.g. “disable” to “enabled” so make sure you update your code accordingly): ImageUltimateWebConfiguration.DisableRewritePath -> ImageUltimateWebConfiguration.RewritePathEnabled

For the full version history of ImageUltimate, please see here.