TwelveMonkeys v3.4 Release NotesRelease Date: 2018-08-18 // over 4 years ago
🚀 TwelveMonkeys ImageIO 3.4 release notes
The TwelveMonkeys ImageIO version 3.4 is finally ready for release. With an extra emphasis on finally this time.
Thanks to everyone who has committed code, patches, filed bug reports or otherwise contributed to the development of this version!
🔌 Especially, a big thank you to Oliver Schmidtmer (@Schmidor) for providing numerous bug fixes for the TIFF plugin, Ivan Khaldeev (@ikhaldeev) for improvements to the TIFF plugin, James Dudley (@blueinblue) for his persistence in finding the bug that caused the multipage compressed TIFF writing offset issue. :-)
🆕 New features:
#25 JPEGImageWriter can now finally write CMYK JPEG files directly from CMYK BufferedImages (CMYK for now, YCCK will come soon)
#360 JPEGImageReader "JPEG-LOSSLESS" and "jpeg-lossless" are now recognised format names
#343 JPEGImageReader now supports reading regions of large JPEGs (w * h > Integer.MAX_VALUE)
#342 TIFFImageReader now recognises and reads the BigTIFF format
#307 TIFFImageReader now recognises and reads custom PIXTIFF ZIP compression
#304 TIFFImageReader now reads JPEG Lossless compressed data
#280 TIFFImageReader now reads 6, 10, 12, 14 and 24 bits per sample data
#317 #429 #432 TIFFImageReader now correctly interprets images with multiple ExtraSamples and non-alpha samples
👍 #287 TIFFImageReader now supports Palette image data with a discrete alpha channel
📇 #290 TIFFImageWriter now supports controlling byte order through stream metadata
#358 TIFFImageWriter now passes compression quality setting to JPEGImageWriter when writing TIFF with JPEG compression
👍 #383 PSDImageReader now supports multiple extra channels/masks
🐛 Bugs fixed:
👍 #324 TIFFImageReader now supports PackBits/LZW/Deflate with FillOrder 2
#404 #406 TIFFImageReader now has more compatible color space interpretation for JPEG (same as libJPEG)
📇 #300 TIFFImageReader now tries to read JPEG data, even if the JPEG metadata is "inconsistent"
#334 #401 TIFFImageWriter now correctly writes compressed multipage TIFFs
#313 TIFFImageWriter now correctly writes PhotometricInterpretation GRAY for GRAY JPEG data
👍 #312 #314 TIFFImageWriter now correctly supports SHORT or LONG values in the input meta data
📇 #397 TIFFImageMetadata now has correct attribute "name" for ColorSpaceType, was "value"
🔀 #430 TIFFUtilities now supports merging of TIFF Pages with Sub-IFDs
👍 #202 JPEGImageReader now supports multiple JPEG streams in a single file
#399 JPEGImageReader now has more compatible color space interpretation (same as libJPEG)
#433 JPEGImageReader now correctly uses the current stream position
👍 #329 JPEGImageReader now has better handling of corrupt JPEG data
#323 JPEGImageReader now tries to resolve invalid component IDs SOS segment
#326 JPEGImageReader now reads JFIF JPEG with non-spec grayscale thumbnails
#274 JPEGImageReader now correctly downsamples multiple DQTs from 16 to 8 bit
#294 JPEGImageReader is now lenient about APPn markers without identifiers
#297 JPEGLosslessDecoder now decodes images containing only AC tables
👍 #400 PCXImageReader now has better handling of PCX monochrome color
#419 PICTImageReader has a fix for a rounding bug, that caused images with missing rows and columns Bug
#431 PICImageReaderSpi now correctly has an extra mark to match the reset call in the finally block
#414 BufferedImageInputStream has a fix an issue when reading multi-byte entities on a buffer boundary
👍 #393 Better validation of corrupt ICC profile data in ImageReader implementations to avoid OutOfMemoryError
#421 ColorSpaces CS_GENERIC_CMYK profile loaded from path has different headers during lifetime
⚡️ #435 Batik dependencies updated to 1.9
📇 #204 Exif metadata module refactored to a TIFF and Exif module
#378 ColorSpaces getColorSpace now enforces correct colorspace type
#405 Improved OSGi compatibility
Thank you for your patience!
We did it.