Apache Commons Imaging 1.0-alpha2 RELEASE NOTES The Apache Commons Imaging team is pleased to announce the release of Apache Commons Imaging 1.0-alpha2 Apache Commons Imaging (previously Sanselan) is a pure-Java image library. Second 1.0 alpha release Changes in this version include: New features: o IMAGING-248: ICNS: missing element types; some safety checks Thanks to Greg Shrago. o IMAGING-245: Add disposal method to GIF metadata Thanks to Christoffer Rydberg. o IMAGING-146: Add documentation for the color package o IMAGING-244: Use isEmpty instead of comparing size() with integers o IMAGING-243: PNG Writer Indexed Color with semi-transparent Pixels and Better Compression Thanks to Andreas Menze. o IMAGING-239: Add inflate (deflate algorithm) to TIFF files Thanks to Paul Austin. o IMAGING-164: Simplify code in IcoImageParser::writeImage Thanks to Michael Groß. o IMAGING-165: Add the fields from TiffReader.Collector to TiffContents Thanks to Michael Groß. o IMAGING-228: Remove private method PhotometricInterpreterLogLuv#cube by Math.pow o IMAGING-236: Add support to read multiple images from GIF Thanks to Christoffer Rydberg. Fixed Bugs: o IMAGING-247: Fix crash when reading TIFF using PackBits Thanks to Gary Lucas. o IMAGING-246: Invalid Block Size error prevents handling of block 1084, Macintosh NSPrintInfo o IMAGING-163: Add XmpEmbedabble interface to parsers that support it o IMAGING-151: ColorGroup.color_counts is mutable public List and is multiply sorted o IMAGING-242: Upgrade to JUnit 5 o IMAGING-241: Copy byte arrays fixing TODO markers o IMAGING-136: Imaging.getImageInfo() fails to read JPEG file Thanks to Michael Groß. o IMAGING-238: Return copied byte arrays in Png Chunk and Png Chunk ICCP o IMAGING-230: Properly close resources with try-with-resources in T4AndT6Compression o IMAGING-134: Invalid (RST) marker found in entropy data Thanks to Michael Sommerville. o IMAGING-130: Reading of some GIF images throws java.io.IOException: AddStringToTable: codes: 4096 code_size: 12 Thanks to Michael Sommerville. o IMAGING-224: Fix build errors in Travis o IMAGING-167: Possible infinite loop at XpmImageParser::writeImage Thanks to Michael Groß. o IMAGING-211: Imaging.getBufferedImage fails throwing java.lang.ArrayIndexOutOfBoundsException for specific inputs o IMAGING-210: Imaging.getBufferedImage fails throwing NegativeArraySizeException for specific inputs Changes: o IMAGING-258: Prevent exception in TIFF when reading EXIF directory Thanks to Gary Lucas. o IMAGING-260: Fix mvn site failure with JavaNCSS parse error o IMAGING-259: Enhance TIFF DataReaders speed for compressed RGB Thanks to Gary Lucas. o IMAGING-251: Support for TIFF floating-point formats Thanks to Gary Lucas. o IMAGING-254: Small code improvements o IMAGING-253: ByteSourceInputStream has initialized its length when reading starts Thanks to David Hrbacek. o IMAGING-249: Make IPTCBlock members private and add getter/setter o Update tests from commons-io:commons-io 2.6 to 2.7. Thanks to Gary Gregory. o Update commons-parent from 50 to 51 #88. Thanks to Dependabot. o Update actions/checkout from v1 to v2.3.1 #87. Thanks to Dependabot. o Update junit-jupiter from 5.5.2 to 5.6.2 #86. Thanks to Dependabot. Historical list of changes: https://commons.apache.org/proper/commons-imaging/changes-report.html For complete information on Apache Commons Imaging, including instructions on how to submit bug reports, patches, or suggestions for improvement, see the Apache Apache Commons Imaging website: https://commons.apache.org/proper/commons-imaging/ The following changes are here only for history, from when the project was initially created and was called Sanselan. Release 0.97 ------------ * Rewrote the info.txt files for many images in the sample image library to clarify contribution to project. * Removed the images from the www.wpclipart.com Public Domain library. * Improved the examples illustrating how to change EXIF metadata. * Applied a patch from Niall Pemberton around jdk1.5 compatibility: """ Sanselan claims JDK 1.4 compatibility, but a JDK 1.5 method (Class's getSimpleName() [1]) has been used in JpegRewriter """ * Applied a "Build Improvements" patch from Niall Pemberton: """ I took a look at the propsed 0.96 relelase and have some suggestions to improve the build: * Add standard manifest entries to jar * Lock down version numbers for maven compiler, surefire and javadoc plugins * generate sources jar for the release * include the RELEASE-NOTES in the binary distribution * include NOTICE/LICENSE files in the javadoc jar """ Release 0.96 ------------ * Updated KEYS file. * Added more unit tests around BMP. * Added more images to the test image suite. * Fixed a bug where errors were being wrongly logged to System.out. * Moved the example code into the test source directory, to comply with Maven's standard project layout. * Added a couple of images to the sample image library that demonstrate a couple variations on Photoshop/IPTC data. * Fixed a small bug in the IPTC constants introduced while cleaning up the constants. * Started shift towards moving field-level parsing into BinaryInputStream and BinaryOutputStream. * Fixed a png unit test that used a piece of Java 1.6 syntax. * Added unit tests around the new IPTC functionality. * Added IPTC remove/update/insert functionality. * Rewrote the IPTC parsing support. * Added improved support for reading and writing iTXt, tEXt, zTXt Png chunks. Added a unit test that demonstrates the feature. * Found a new regression wherein DeflaterOutputStream needs to be closed. * Added the .tar.bz2 distributions back into the maven assembly descriptors. * Moved the example/sample code to a new top-level source folder, "example." * Replaced dependency on java.util.zip.DeflaterOutputStream, which is only available in Java 1.6. * Added a unit test around reading and writing images in every format. * We now sort some (but not all) GIF color tables. * Applied the BMP "buffer flushing" bug to the PBM reading and writing code. * Fixed a regression around flushing the bit buffer when writing BMPs with very small palettes. * Removed assumption about DataBuffer type when reading BMPs. * When writing a GIF, we now always include a Graphic Control Extension block, even if its not necessary. * We are more defensive about missing GCEs. * Lastly, we now set a minimum bound on initial code sizes for LZW-compressed Gif image data. * Found a regression in writing TIFFs around strip offsets being properly updated. Not a LZW issue after all. Added a few unit tests around this issue. see: https://issues.apache.org/jira/browse/SANSELAN-6 * Added ability to remove and update XMP XML in existing JPEG files. * Added ability to embed XMP XML when writing the following formats: GIF, PNG, TIFF. * Improved handling of tEXt and zTXt PNG text blocks. * Added XMP XML extraction for the following formats: GIF (untested), JPEG, TIFF, PNG, PSD. * Added RELEASE_NOTES file (this file). * Added Apache license header to bin.xml and src.xml Maven assembly descriptors. * Added Javadocs to the binary distribution Release 0.94 ------------ First Apache release of Sanselan Fixed bugs: ----------- * Can't convert PNG image to GIF image The PNG reader wasn't handling the 16-bit mode 4 PNGs properly. The PNG reader wasn't gamma-correcting non-palette values properly in PNGs. see: https://issues.apache.org/jira/browse/SANSELAN-5