All Versions
10
Latest Version
3.5
Avg Release Cycle
172 days
Latest Release
133 days ago

Changelog History

  • v3.5

    January 24, 2020

    🚀 TwelveMonkeys ImageIO 3.5 release notes

    🚀 The TwelveMonkeys ImageIO version 3.5 is ready for release.

    Thanks to everyone who has committed code, patches, filed bug reports or otherwise contributed to the development of this version!

    What's new?

    👌 Support for writing Adobe Photoshop clipping path embedded in JPEG and TIFF formats, through the Paths API (#490).

    👍 Also worth mentioning is we now have basic write support for the Truevision TGA format (#379), as well as basic write support for Apple Icon (ICNS) and MS Window Icon (ICO) icon formats (#83 and #82 respectively).

    🚀 The following bugs/issues are fixed in this release:

    🛠 #514 Fixes invalid StripByteCounts in large TIFF files, due to integer overflow.
    #455 TIFF PhotometricInterpretation is no longer inverted for WhiteIsZero when ICC profile is present.
    🛠 #438 Fixed a resource leak in CompoundDocument when reading from File or InputStream inputs.
    #437 Fix for Could not initialize class com.twelvemonkeys.imageio.color.ColorSpaces.
    📇 #412, #416TIFFImageWriter now copies most fields from the metadata to the output.
    👻 #398 Better exception message when BufferedImage size > Integer.MAX_VALUE

  • v3.4.3

    January 09, 2020

    🚀 TwelveMonkeys ImageIO 3.4.3 release notes

    🚀 This is a bug fix release.

    What's new?

    🚀 The following bugs/issues are fixed in this release:

    🛠 #493 Fixed subsampling for TIFF < 8 bit samples, no longer throws ArrayIndexOutOfBoundsException
    #501 Fix for reading BMP and other files with TYPE_USHORT_555/565_RGB, ColorModel now has 16 bits
    #510 Fix for possible hang situation in corrupted/malicious JPEG files

    🚀 In addition, any dependencies for Log4J has been removed (previous releases of the TwelveMonkeys servlet module contained an unused provided dependency on Log4J 1.2.17). See Deserialization of Untrusted Data in Log4j for details on why this was removed.

  • v3.4.2

    August 12, 2019

    🚀 TwelveMonkeys ImageIO 3.4.2 release notes

    🚀 This is a bug fix release.

    What's new?

    🚀 The following bugs/issues are fixed in this release:

    📜 #492 TIFFReader: ASCII fields are incorrectly parsed as single string
    #489 Unexpected End of PackBits Stream for some TIFF files
    #488 ArrayIndexOutOfBoundsException in getEmbeddedICCProfile
    #477 Cyclic directory references in EXIF data cause StackOverflowErrors
    #469 Out of memory while reading Exif data from JPEG file
    #474 java.awt.color.CMMException: Can not access specified profile
    #455 TIFF with PHOTOMETRIC_WHITE_IS_ZERO and ICC Profile is inverted
    👻 #398 Better exception message when BufferedImage size > Integer.MAX
    #449 TIFFImageReader: Ignore bogus StripByteCounts entry with value 0
    👍 #475 Fix support for writing TIFF > 2 GB
    #473 Fix for ColorMap (Indexed) TIFF with non-alpha ExtraSamples
    #442 SVG BaseURI issue fix
    #438 CompoundDocument file descriptor fix

  • v3.4.1

    September 08, 2018

    🚀 TwelveMonkeys ImageIO 3.4.1 release notes

    🚀 This is a bug fix release.

    What's new?

    🚀 The following bugs/issues are fixed in this release:

    📇 #439 Unclear exception message when passing TIFF image metadata as stream metadata.
    🛠 #437 Fixes class init problem in ColorSpaces class caused by JRE (NullPointerException from CMM) bug.

  • v3.4

    August 18, 2018

    🚀 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. :-)

    What's new?

    🆕 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

    👍 #403 PSDImageReader now supports MeSa, PHUT, AgHg and DCSR Photoshop Image Resources
    📇 #350 PSDMetadata now includes Horizontal-/VerticalPixelSize in standard Dimension node

    👍 #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

    Other improvements/enhancements:

    ⚡️ #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.

  • v3.3.2

    February 02, 2017

    🚀 TwelveMonkeys ImageIO 3.3.2 release notes

    🚀 This is a bug fix release.

    What's new?

    🚀 The following bugs/issues are fixed in this release:

    🛠 #306 TIFF: Fixed LZW write issue for < 8 bit/pixels
    👍 #307 TIFF: Added support for PIXTIFF ZIP compression (50013)
    📇 #312 TIFF: Fixed ClassCastException when re-writing compressed images (metadata)
    📇 #314 TIFF: Fixed ClassCastException when re-writing compressed images (metadata)
    🛠 #313 TIFF: Fixed incorrect YCbCr photometric when writing grayscale JPEG compressed images
    📇 #300 TIFF: Fix for Old-style-JPEG "Inconsistent metadata read from stream" issue (metadata)
    👍 #297 JPEG: JPEGLossless now correctly supports images with multiple DC tables

  • v3.3.1

    November 29, 2016

    🚀 TwelveMonkeys ImageIO 3.3.1 release notes

    🚀 This is a bug fix release.

    What's new?

    🚀 The following bugs/issues are fixed in this release:

    🛠 #294 Fixed regression: Can now read JPEGs with APPn markers without null-terminated identifier
    🛠 #274 Fixed "Bogus marker length" issue when downscaling JPEG DQT from 16 to 8 bit

  • v3.3

    November 03, 2016

    🚀 TwelveMonkeys ImageIO 3.3 release notes

    🚀 The TwelveMonkeys ImageIO version 3.3 is finally ready for release.

    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, and Herman Kroll (@HermannKroll) for integrating the JPEG Lossles code and its original author Helmut Dersch for kindly providing his JPEG code under BSD license.

    What's new?

    🆕 New features:

    👍 #182 JPEG Lossless support. The library now has support for the most common bit depths of JPEG Lossless through the JPEGImageReader.
    👍 #234 Raw Lossles Raster reading support through the JPEGImageReader

    Other improvements/enhancements:

    #212 TIFFImageReader: Subsampling is incorrect
    #268 TIFFImageReader: Reading with source region is broken for JPEG-in-TIFF raster case
    #272 LZWDecoder - IndexOutOfBoundsException when reading some files
    #282 TIFFReader EOFException when reading LZW RGB image
    #228 TIFFImageWriter does not correctly write images with "sampleModelTranslate"
    #241 TIFF: read after save fails with EOFException
    #229 TIFFImageWriter writes uncompressed files with incorrect "StripByteCounts" field
    #257 TIFFImageWriter: Unreadable LZW
    #253 TIFFImageReader: JPEG/YCbCr doc from Xerox scanner get inverted colors
    #267 TIFFImageReader: Monochrome image with grayscale profile
    #265 TIFFImageReader: Invalid JPEG file structure: missing SOS marker
    📦 #260 Typo in TIFFProviderInfo - class package should read as com.twelvemkonkeys.imageio.plugins.tiff.TIFFImageWriterSpi
    📇 #254 NPE reading TIFF Metadata when BitsPerSample not set
    #237 ArrayIndexOutOfBoundsException when reading G4 compressed TIFF file
    #232 TIFF EOFException
    #233 Tiff reader/writer corrupts image data.
    0️⃣ #220 Incorrect default for PlanarConfiguration in TIFFImageReader

    📇 #276 JPEG Metadata Cleaner doesn't split DHT correctly
    #269 Issue with loading CMYK jpeg as BufferedImage with CMYK color model
    #266 NPE when reading empty file

    📇 #285 BMPImageReader.getImageMetadata throws exception for files with incorrect header

    #214 PSDImageReader: Long layernames are not read New feature Trouble-shooting
    #248 PSDReader loads wrong band indicies in grayscale psd files with backgrounds.
    #244 PSDReader incorrectly uses grayscale ICCProfile with a grayscale background.

    👍 #190 Support for Batik 1.8
    👍 #191 Support SVG files without XML declaration

    #256 ImageTypeSpecifiers needs special case for packed 8 and 16 bit types
    #258 Typo in provider info, spis etc : "twelvemkonkeys"
    #275 Infinite loop while getting ImageReaders
    #249 ImageUtilTestCase fails with 8u60+
    #261 Extended AffineTransformOp for a Graphics2D fallback on filter-method
    #213 Add license to pom file New feature Task

  • v3.2.1

    December 11, 2015

    🚀 TwelveMonkeys ImageIO 3.2.1 release notes

    🚀 This is a bug fix release.

    🚀 Note also that the Batik dependencies are updated from 1.6 to a more official 1.6.1, because of a security issue in older version of Batik. The next major release (3.3) will use Batik 1.8.

    What's new?

    🚀 The following bugs/issues are fixed in this release:

    🛠 #188 Fixed an issue with long runlengths in CCITTFax writing
    👍 #191 Support for SVG files without XML declaration
    ⚡️ Updated versions and fixed Batik dependencies for 1.6.1
    ⚡️ Updated README with info on Batik versions.
    #195 ArrayIndexOutOfBoundsException for ResampleOp in certain cases

  • v3.2

    November 01, 2015

    🚀 TwelveMonkeys ImageIO 3.2 release notes

    🚀 The TwelveMonkeys ImageIO version 3.2 is finally ready for release.

    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 read and write support for TIFF CCITT T.4 and T.6 encodings, and to Jason Palmer (@jasonwpalmer) for initial work and help on the TIFF metadata.

    What's new?

    🆕 New features:

    📇 #139 Full TIFF metadata support (read/write), mostly compatible with the TIFF metadata from JAI TIFF plugin
    👌 #61 Support for TIFF CCITT T.4 and T.6 (TIFF "Class F" Group 3 and 4) encodings (read/write)
    👌 #157 Support for Radiance RGBE (.HDR) format (read)
    👍 #184 Read support for TIFF planar data (PlanarConfiguration: 2) (read)
    #173 Support for CIE L_a_b* ColorSpace (including ITU and ICC encodings) in TIFF plugin (read)
    👍 #171 Support for TIFF with RGB + Alpha 4444 (USHORT)
    👍 #164 Support for TIFF with 32 bit floating point samples
    👍 #163 Support for TIFF containing signed integral other than short/16 bit
    👍 #162 Support for TIFF containing gray + alpha.
    👍 #143 Support for CMYK JPEG in TIFF

    Other improvements/enhancements:

    🛠 #179 Fixed broken offsets for 16 and 32 bits PackBits data in PSD files
    🛠 #170 Fixed General CMM error517/LCMS error 13 (now ignoring incompatible ICC profile)
    🛠 #169 Fixed NullPointerException when reading JPEG image
    #168 Changed Maven test dependencies from classifier test to dtype test-jar for better sbt support
    🚚 #166 Removed printStackTrace() from EXIFReader
    🖨 #165 ICOImageReader no longer prints debug information
    🏗 #158 Building with Java 8 should now work without any special settings
    📇 #156 Now correctly interprets alpha in TGA format (+ thumbnail & metadata fixes)
    🛠 #154 Fixed AccessControlException when reading "Generic CMYK.icc" in some cases

    xxx Added format name synonyms for TIFF format (TIF is now recognized)

    #146 Now correctly sets ExtraSamples, allowing output of CMYK TIFFs
    #142 Added missing resource file, now making sure the TIFFImageWriter is registered
    #140 JPEG with corrupted ICC profile (new kind) can now be read
    #138 DateUtil now supports sub-hour offset timezones (making tests pass in these timezones)
    #134 Can now read PSD images with PSD Layer Mask data size 28

    xxx Faster TIFF LZW encoder

    Future plans

    Short term (3.x):

    • 👍 Extended JPEG write support.
    • 👍 Extended PNM write support.

    Long term:

    • 👍 Read support for Cannon RAW (CR2) format.
    • 👍 Read support for Adobe Digital Negative (DNG) and TIFF/EP.
    • 👍 Consider rewriting the SVG support to use a different SVG library with less dependencies.
    • 👍 Better modularization and less/slimmer dependencies.
    • 👍 Write support for ICNS.
    • 👍 Write support for ICO