blob: f6879cf9161ce3b8fcf6dfa74823ce9be1c247de [file] [log] [blame]
Apache Commons Sanselan Release Notes
-------------------------------------
Apache Commons Sanselan is a pure-Java image library for reading and writing a variety of image formats.
See the project site for details and sample code.
http://commons.apache.org/sanselan/
Version History:
----------------
Release 0.98
------------
* SANSELAN-44 - JpegImageMetadata getEXIFThumbnail may raise a null pointer exception
* Fixed a problem in the metadata example code not using exact matching for GPS values.
* Fixed a possible NPE in Sanselan.getICCProfile pointed out by Jon Weygandt.
* Fixed a bug in which gifs have incorrect size information in the the Logical Screen Descriptor.
This appears to be a bug in how Microsoft Office writes gifs.
The Image Descriptor has the correct value.
* Added accessor methods for a number of ImageInfo properties.
* Applied patch contributed by Nicolas Richeton, adding getEXIFThumbnailSize() and getEXIFThumbnailData()
methods to JpegImageMetadata.
* Fixed a couple of platform-dependent paths in the tests.
* Constant-ized the magic numbers used when guessing formats.
* Added a test for the format guessing.
* Improvements to ICO parsing and support for PNG images in ICO files.
* Added support for the ICNS icon format.
* Added support for the PCX and DCX image formats.
* Improvements to BMP parsing.
* Added support for the WBMP format.
* Added support for reading simple baseline YCbCr JPEG images.
* Added support for XBM and XPM images.
* SANSELAN-54 - TIFF float and double values are written in the wrong byteorder.
* SANSELAN-52 - fixed PNG transparency in getImageInfo().
* SANSELAN-13, SANSELAN-47, SANSELAN-55, others - made TIFF tag parsing a lot
more rigorous, allowing EXIF to be read even from very corrupt files.
* Added the ability to read comments from a JPEG file using getImageInfo().
* Added support for compression=2 TIFF images.
* SANSELAN-46 - allowed all Sanselan tests to pass.
* SANSELAN-59 - deleted confusing redefinition of some constants.
* Altered TIFF tag searching to do an exact directory match when possible.
* SANSELAN-48 - added support for reading and writing CCITT Modified Huffman, Group 3 and Group 4 images.
* SANSELAN-31 - added a high level type-safe API for reading and writing EXIF fields.
* SANSELAN-25 - added support for the RGBE (Radiance HDR) image format.
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