The Apache Commons Imaging team is pleased to announce the commons-imaging-1.0-alpha1 release!
Apache Commons Imaging (previously Sanselan) is a pure-Java image library. Changes in this version include: New features: o Added accessor methods for a number of ImageInfo properties. Issue: IMAGING-75. o Applied patch contributed by Nicolas Richeton, adding getEXIFThumbnailSize() and getEXIFThumbnailData() methods to JpegImageMetadata. Issue: IMAGING-71. Thanks to Nicolas Richeton. o Add support for the ICNS icon format. Issue: IMAGING-56. Thanks to damjan. o Add support for PCX, DCX, WBMP, XBM and XPM images. Issue: IMAGING-58. o Add support for TIFF files with compression=2, (CCITT Group 3 1-Dimensional Modified Huffman run length encoding). Issue: IMAGING-64. o Add a type-safe high-level API for writing TIFF fields. Issue: IMAGING-77. o Add TagInfoXpText for fields like XPTITLE, and encode/decode it using UTF-16LE like Windows does. Issue: IMAGING-51. o Added support for reading the RGBE / Radiance HDR image format. Issue: IMAGING-60. Thanks to proyal. o Add a field to IptcRecord that contains its raw bytes, and a getter for this value. Issue: IMAGING-68. o Provide a way to write EXIF data into files using Sanselan.writeImage(). Issue: IMAGING-73. o Run a Findbugs analysis on "mvn site". Also audit and fix resource leaks. Issue: IMAGING-47. Thanks to adrian2k7. o Provide a way to write the pixel density (DPI) into an image. Issue: IMAGING-65. o Include a test utility for timing and memory in project example classes. Issue: IMAGING-61. Thanks to gwlucas. o Add more Javadoc to main package. Issue: IMAGING-81. Thanks to gwlucas. o Detect the YCCK color space/type in JPEG files' APP14 segment. Issue: IMAGING-89. o Add ability to load partial TIFF images Issue: IMAGING-94. Thanks to gwlucas. Fixed Bugs: o All tEXt chunks are not returned from PngImageParser.getMetadata Issue: IMAGING-199. Thanks to Ric Emery. o JpegDecoder takes a long time (+10s) to decode a bad JPEG Issue: IMAGING-220. o Imaging gets stuck parsing a RGBE input file Issue: IMAGING-219. o ArrayIndexOutOfBoundsException in DhtSegment Issue: IMAGING-215. o JPEG segment size not validated Issue: IMAGING-203. Thanks to Rody Kersten. o PnmImageParser throws ImageWriteException when writing if PnmImageParser.PARAM_KEY_PNM_RAWBITS is provided Issue: IMAGING-209. Thanks to Isak Wertwein. o Imaging (Apache Sanselan) produces "odd offsets" in (EXIF) metadata Issue: IMAGING-205. o Incorrect Maven coordinates on project website Issue: IMAGING-195. Thanks to Keith Strydom. o ImageDataReader.decompress() overwrites its input Issue: IMAGING-190. o Duplicate class names Issue: IMAGING-193. o parseXpmValuesSection uses && instead of || Issue: IMAGING-189. o EXIF lens metadata tags missing in Commons Imaging but recognized in exiftool Issue: IMAGING-181. o Microsoft tags are not seen in MS Windows Properties/Details dialog. Issue: IMAGING-172. o TiffImageParser.getImageInfo() throws exception when "Compression" field is missing. Issue: IMAGING-176. Thanks to Gabriel Axel. o PnmImageParser does not check the validity of input PAM header. Issue: IMAGING-178. Thanks to emopers. o MicrosoftTagTest rewrite image exif fails in some environments Issue: IMAGING-171. Thanks to Jan Helbich. o PnmImageParser throws NumberFormatException instead of ImageReadException when parsing invalid images Issue: IMAGING-169. Thanks to Nebu Pookins. o TiffOutputSet.setGPSInDegrees should make sure, GPSVersionID is set Issue: IMAGING-144. Thanks to Paul Hartmann. o Classes should not expose mutable arrays Issue: IMAGING-117. o DumpImage method for JPEG reports it's coming from TIFF. Issue: IMAGING-145. Thanks to Chris Carman. o Can not set EXIF_TAG_EXIF_VERSION tag. Issue: IMAGING-137. o ExifReWriter always writes EXIF segment before JFIF segment. Issue: IMAGING-140. Thanks to Gavin Shiels. o Allow null parameters in PngImageParser.getBufferedImage(), and add some tests for null parameters. Issue: IMAGING-131. o Null Pointer exception while extracting metadata for CR2 image. Issue: IMAGING-121. Thanks to Piyush Kapoor. o DhtSegment class contains mutable public arrays. Issue: IMAGING-115. o SofnSegment.components - public mutable array. Issue: IMAGING-117. o GenericSegment.bytes - public mutable array. Issue: IMAGING-116. o interface RgbeConstants contains mutable array. Issue: IMAGING-118. o ComSegment.comment is a public final byte array. Issue: IMAGING-114. o Several files contain non-UTF8 characters. Issue: IMAGING-109. o Cannot read multipage tiff. Issue: IMAGING-113. o JPEG EOI marker could not be found at expected location. Issue: IMAGING-108. o GIF dimensions transposed. Issue: IMAGING-101. Thanks to Colm O hEigeartaigh. o JpegXMPWriter throws NullPointerException. Issue: IMAGING-23. o Fixed a couple of platform-dependent paths in the tests. Constantized the magic numbers used when guessing formats. Added a test for the format guessing. Issue: IMAGING-74. o SanselanGuessFormatTest and SanselanTestConstants use Java 1.5 method String.replace(CharSequence, CharSequence). Issue: IMAGING-2. o Sanselan tests fail on Windows. Issue: IMAGING-80. o Fix for "JpegImageMetadata getEXIFThumbnail only works on Jpeg thumbnails stored as Tiff images" issue. Jpeg thumbnails are read using ImageIO. Issue: IMAGING-18. Thanks to James E-J. o JpegImageMetadata getEXIFThumbnail may raise a null pointer exception. Issue: IMAGING-48. o Implement dumpImageFile for ICO files and fix a typo. Issue: IMAGING-52. Thanks to damjan. o Tiff (exif) tags of type double written in wrong byte order. Issue: IMAGING-12. Thanks to gwlucas. o The isTransparent flag is not set on transparent PNGs. Issue: IMAGING-30. Thanks to clement.escoffier. o Ignore TIFF entries that have invalid offsets and/or lengths when we are not in strict mode. Issue: IMAGING-11. o readDirectory method in TiffReader doesn't gracefully handle exceptions that can be thrown from ByteSource implementations. Issue: IMAGING-78. o Search all tags instead of just EXIF tags when parsing TIFF metadata tags, and try to match on directory type as well. Issue: IMAGING-24. o Don't allow very large TIFF lengths to be interpreted as negative because they have the highest order bit set. Issue: IMAGING-21. o Make JPEG parsing highly resilient: skip all bytes after the end of a segment until the next segment (0xFF followed by non-0xFF). Issue: IMAGING-50. o Fix reading ASCII tags in TIFF files. Issue: IMAGING-16. o Ignore string differences in our tests when 7 bit unclean TIFF string are copied. Issue: IMAGING-3. o Don't redefine BYTE_ORDER_BIG_ENDIAN and BYTE_ORDER_LITTLE_ENDIAN in UnicodeMetricsUTF16. Issue: IMAGING-41. o Fixed issue "FieldTypeASCII does not conform to the EXIF specification," identified by Libor Nenadál. Issue: IMAGING-35. o 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. Issue: IMAGING-31. o Added checks in ByteSource's getBlock() methods for invalid params. Issue: IMAGING-13. o Fixed a possible NPE in Sanselan.getICCProfile pointed out by Jon Weygandt. Issue: IMAGING-46. o Improve ICO file support. Issue: IMAGING-76. Thanks to damjan. o Preserve the byte range occupied by the Maker Notes, so rewriting it doesn't corrupt it. Issue: IMAGING-49. o Read in the full IPTC block before trying to ignore it, so we don't lose our position in the stream. Issue: IMAGING-29. Thanks to alexvigdor. o Fix the GIF BitsPerPixel formula in GifImageParser's getImageInfo(). Issue: IMAGING-45. Thanks to pkapoor. o Fix various problems with reading and writing EXIF tags. Issue: IMAGING-39. o Eliminate or hide public mutable final arrays in the API. Issue: IMAGING-22. o If the TIFF rows per strip is not present, assume it is the image length. Issue: IMAGING-43. Thanks to pkapoor. o Make BitInputStream sensitive to byte order. Allows 48 BPP TIFF files to load. Issue: IMAGING-17. Thanks to pkapoor. o Fix the PhysicalWidthDpi calculation for JPEG images. Issue: IMAGING-38. Thanks to tjoris. o Fix reading DPI for TIFF files. Issue: IMAGING-19. Thanks to vvd. o Fix reading DPI for PNG files. Issue: IMAGING-44. Thanks to vvd. o Add the Software TIFF tag, and get the byte order after reading the first TIFF directory. Issue: IMAGING-40. Thanks to pkapoor. o Correct the expected size of the decompressed TIFF image data, and improve sample depth scaling for PNG images. Issue: IMAGING-6. o Stop JpegImageMetadata from throwing NPE if the exif field is null. Issue: IMAGING-15. Thanks to pkapoor. o Speed up reading paletted TIFF files. Issue: IMAGING-67. Thanks to gwlucas. o Allow TIFF fields to change size during encoding. Fix a broken test that assumes they never do. Issue: IMAGING-8. o Fix sample usage links on the website. Issue: IMAGING-36. o Reduce memory usage when reading TIFF files. Issue: IMAGING-70. Thanks to gwlucas. o Fixed the differencing predictor for tiled TIFF images. Issue: IMAGING-33. o Update website, fix some broken links and remove old code. Issue: IMAGING-5. o Add a streamlined TIFF reader that reduces load time by a factor of 5. Issue: IMAGING-69. Thanks to gwlucas. o Fix BMP width and height DPI. Issue: IMAGING-82. Thanks to pkapoor. o Fix the lengths for DateTimeOriginal and DateTimeDigitized TIFF/EXIF tags. Issue: IMAGING-86. o Method lowerBound in org.apache.commons.imaging.common.itu_t4.T4AndT6Compression has a division error. Issue: IMAGING-88. Thanks to craigkelly. o Issue trying to update GPS metadata info in a JPG. Issue: IMAGING-92. Thanks to hmarmy. o Tiled TIFF images do not correctly load partial tiles. Issue: IMAGING-93. Thanks to gwlucas. o Allow non-1 TIFF field lengths when parsing offset fields in non-strict mode. Issue: IMAGING-90. o java.io.IOException: Could not read block Issue: IMAGING-99. Thanks to st.h. Changes: o Remove Debug class Issue: IMAGING-154. o Tidy up IconParser Issue: IMAGING-124. Thanks to Jens Kapitza. o remove duplicated lines in T4AndT6Compression Issue: IMAGING-123. Thanks to Jens Kapitza. o Add sCAL support to PNG reading and writing. Issue: IMAGING-186. Thanks to Ric Emery. o Update platform from Java 5 to 7 Issue: IMAGING-184. o JpegIptcRewriter.removeIPTC() does not remove all metadata Issue: IMAGING-112. Thanks to Xavier Dury. o ByteSourceImageTest: Local variable hides a field Issue: IMAGING-166. Thanks to Michael Groß. o Refactor TagConstants Issue: IMAGING-156. o TIFF and PNG images should not be bigger than the ones created by java ImageIO Issue: IMAGING-126. Thanks to Gary Lucas. o Add color constants Issue: IMAGING-147. Thanks to Stephan Koeninger. o Implement equals and hashcode on color classes Issue: IMAGING-150. Thanks to Stephan Koeninger. o ByteSourceInputStream.streamLength could be a long. Issue: IMAGING-91. o Some tiff processing takes very long. Issue: IMAGING-95. Thanks to amitgupt. o Update from Java 7 to Java 8. Issue: IMAGING-223. Thanks to Gary Gregory. Have fun! -Apache Commons Imaging team --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org