Better alpha handling in image resize
When you shrink an image with an alpha channel, you need to be rather careful. The problem is that features which should be very faint (because of alpha) can become emphasised along edges as the alignment of the alpha and image varies.To fix this, libvips has a pair of new operations, vips_premultiply() and vips_unpremultiply(), and vipsthumbnail wraps them around resize. Other systems which use vips for resizing images with transparency should probably use these as well.
Many thanks to gasl for pushing this fix through.
New HSV colourspace
Many image processing systems support HSV colourspace. It's a simple recombination of RGB and not directly very useful (the LCh space which vips already has is much better), but it can be handy for compatibility.Many thanks to Jonas Øgaard for this feature.
Better image reorganisation operations
In vips 8.0 you could use vips_copy() to perform a range of pixel reorganisations. For example, you could turn a 300 pixel across monochrome image into a 100 pixel across RGB image. The idea was that you could use vips_copy() to change the image header and address the pixel data in a different way. Unfortunately this didn't work very well. It could mess up various caches and cause intense confusion.In 8.1, you can still change any header fields you like with vips_copy(), but the sum of those changes can't change the size of a pixel. To do reorganisations like that, like turning bands into width, there are a set of new operations: vips_bandfold(), vips_bandunfold(), and vips_byteswap().
Better file format support
The system for handling EXIF tags in JPEG images has changed. You can now set any tag, not just modify existing tags. TIFF load and save supports IPCT and Photoshop metadata. CSV and PPM operations support DOS line breaks.Plus some other small improvements and bug fixes.
No comments:
Post a Comment