| Apache Commons Imaging 1.0.0-alpha5 Release Notes |
| ---------------------------------------- |
| |
| The Apache Commons Imaging team is pleased to announce the release of Apache Commons Imaging 1.0.0-alpha5. |
| |
| Apache Commons Imaging (previously Sanselan) is a pure-Java image library. |
| |
| The 1.0.0-alpha5 release requires Java 8. |
| |
| |
| Fixed Bugs |
| ---------- |
| |
| * IMAGING-319: Fix EXIF metadata is discarded when updating offsets (wrong calculation). Thanks to Stefan Oltmann, Gary Lucas. |
| * IMAGING-351: Fix ExifRewriterRoundtripTest that was disabled. Thanks to Stefan Oltmann, Gary Lucas, Charles Hope. |
| |
| Changes |
| ------- |
| |
| * Bump org.apache.commons:commons-parent from 67 to 69 #382. Thanks to Dependabot. |
| * Bump commons-io:commons-io from 2.16.0 to 2.16.1 #385. 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 Commons Imaging website: |
| |
| https://commons.apache.org/proper/commons-imaging/ |
| |
| Download page: https://commons.apache.org/proper/commons-imaging//download_text.cgi |
| |
| Have fun! |
| -Apache Commons Team |
| |
| ----------------------------------------------------------------------------- |
| Apache Commons Imaging 1.0.0-alpha4 Release Notes |
| ------------------------------------------------- |
| |
| The Apache Commons Imaging team is pleased to announce the release of Apache Commons Imaging 1.0.0-alpha4. |
| |
| Apache Commons Imaging (previously Sanselan) is a pure-Java image library. |
| |
| The 1.0.0-alpha4 release requires Java 8. |
| |
| |
| New features |
| ------------ |
| |
| * IMAGING-352: [PngWriter] Allow custom PaletteFactory #294. Thanks to Jeroen van der Vegt, Gary Gregory. |
| * IMAGING-360: Add more TIFF compression entries to ImageInfo #311. Thanks to Gary Lucas, Gary Gregory. |
| * IMAGING-316: Add support for BigTIFF format #318. Thanks to Gary Lucas, Gary Gregory. |
| * IMAGING-369: TIFF JPEG reader encounters array bounds exception on edge cases. Thanks to Gary Lucas, Gary Gregory. |
| * IMAGING-339: Basic WebP Support #254. Thanks to Glavo. |
| * IMAGING-355: Add option to skip reading GIF metadata #301. Thanks to Andrew Khoury, Bruno P. Kinoshita, Gary Gregory. |
| * Add Maven property project.build.outputTimestamp for build reproducibility. Thanks to Gary Gregory. |
| |
| Fixed Bugs |
| ---------- |
| |
| * IMAGING-335: NullPointerException in App2Segment.getIccBytes when parsing a broken JPEG file. Thanks to Dominik Stadler, Gary Gregory. |
| * IMAGING-342: Read PNG metadata from iTXt chunk. Thanks to Glavo. |
| * [StepSecurity] ci: Harden GitHub Actions #297. Thanks to step-security-bot, Gary Gregory. |
| * Use static imports for JUnit Assertions methods #307. Thanks to Marcono1234, Gary Gregory. |
| * IMAGING-359: Fix test resource file paths not being constructed properly #306. Thanks to Marcono1234, Gary Gregory. |
| * Do not implement Serializable in ColorCountComparator and RgbComparator. Thanks to Gary Gregory. |
| * Avoid java.lang.NullPointerException in org.apache.commons.imaging.formats.pcx.PcxWriter.writeImage(). Thanks to Gary Gregory. |
| * IMAGING-337: Make ImageInfo state correct color type #337. Thanks to Gary Lucas, Gary Gregory. |
| * Fail-fast on null inputs in AbstractPixelParser constructor (oss-fuzz 34180) #183. Thanks to Bruno P. Kinoshita, Gary Gregory. |
| * Avoid NullPointerException in TiffImageParser.checkForSubImage(TiffImagingParameters) #304. Thanks to Luzian Seiler, Ditscheridou, Bruno P. Kinoshita, Gary Gregory. |
| * Avoid NullPointerException in TiffImageParser.getBufferedImage() #347. Thanks to nanfangfanqie, Gary Gregory. |
| * IMAGING-373: Fail faster on invalid ICO file. Thanks to Milan Nikl. |
| |
| Changes |
| ------- |
| |
| * BinaryOutputStream now subclasses FilterOutputStream instead of OutputStream and does not need to count bytes. Thanks to Gary Gregory. |
| * IMAGING-353: Fix PngImageParser hasPalette #295. Thanks to Jeroen van der Vegt, Gary Gregory. |
| * Bump actions/cache #225, #228, #239, #240. Thanks to Dependabot, Gary Gregory. |
| * Bump actions/checkout #241. Thanks to Gary Gregory, Dependabot. |
| * Bump actions/setup-java. Thanks to Gary Gregory. |
| * Bump commons-parent from 52 to 67. Thanks to Dependabot, Gary Gregory. |
| * Bump spotbugs-maven-plugin from 4.6.0.0 to 4.7.3.0 #221, #224, #226, #236, #242, #247, #248. Thanks to Dependabot. |
| * Bump maven-pmd-plugin from 3.16.0 to 3.20.0 #222, #232, #235, #267. Thanks to Dependabot. |
| * Bump spotbugs from 4.7.0 to 4.7.3 #223, #244. Thanks to Dependabot. |
| * Bump junit-jupiter from 5.8.2 to 5.9.1 #227, #237. Thanks to Dependabot. |
| * Bump animal-sniffer-maven-plugin from 1.21 to 1.23 #230, #290. Thanks to Dependabot. |
| * Bump maven-checkstyle plugin from 3.1.2 to 3.2.1 #233, #266. Thanks to Dependabot. |
| * Bump commons-io:commons-io 2.6 to 2.16.0 #380. Thanks to Gary Gregory. |
| * Bump commons-lang3 from 3.12.0 to 3.14.0. Thanks to Gary Gregory. |
| * IMAGING-347: Refactor BasicCParser::unescapeString(). Thanks to snumlautoken. |
| * IMAGING-345: Make unit tests work in-memory instead of writing hundred of tmp files. Thanks to Matthieu Casanova. |
| |
| |
| 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 Commons Imaging website: |
| |
| https://commons.apache.org/proper/commons-imaging/ |
| |
| Download page: https://commons.apache.org/proper/commons-imaging//download_text.cgi |
| |
| Have fun! |
| -Apache Commons Team |
| |
| ----------------------------------------------------------------------------- |
| |
| The Apache Commons Imaging team is pleased to announce the commons-imaging-1.0-alpha3 release!
|
|
|
| Apache Commons Imaging (previously Sanselan) is a pure-Java image library.
|
|
|
| New features |
| ------------ |
|
|
| * Add CIELAB and DIN99 conversion, reduce code duplication, and issues related to zero-division and precision. Issue: IMAGING-283. Thanks to Wanja Gayk.
|
| * Imaging.getBufferedImage() drops alpha layer for TIFF images. Issue: IMAGING-216. Thanks to Gary Lucas.
|
| * Consolidate redundant methods in TIFF datareaders. Issue: IMAGING-269. Thanks to Gary Lucas.
|
| * Add list of TIFF files and example survey application. Issue: IMAGING-268. Thanks to Gary Lucas.
|
|
|
| Fixed Bugs |
| ---------- |
|
|
| * Add PNG predictor to reduce output size. Issue: IMAGING-330. Thanks to Gary Lucas.
|
| * Change getExif name to getOutputSet. Issue: IMAGING-327. Thanks to Gary Lucas.
|
| * Prevent OutOfMemoryError in BmpImageParser. This can happen when the color palette length is |
| a large negative number. Issue: IMAGING-325. Thanks to Jin Wang.
|
| * Read TIFFs with 32-bit samples. Issue: IMAGING-320. Thanks to Gary Lucas.
|
| * The Imaging ImageParser's used HashMap's before, but on this issue we replaced the maps by proper |
| ImagingParameter classes, that encapsulate the parameters for each image format. |
| |
| The Imaging class also had the HashMap methods removed, but we also removed the public methods that |
| supported parameters. This was due to the complexity to handle cases where users could provide a byte |
| array, or file, and parameters. In Java, with or without generics, it was rather difficult to handle |
| the cases where users could provide a PNG image stream with TIFF parameters. |
| |
| To prevent issues like this, we will improve the ImageParser's API's, and work on either providing |
| other ways to customize and create parsers (factories, builders, etc.) or similar ways to use |
| the Imaging entry class (like merging parameters or using parameter builders.) |
| |
| This was the last blocker issue of the 1.0 release vote, rolled a few years ago. Issue: IMAGING-159. Thanks to Bruno P. Kinoshita, Gary Lucas, Matt Juntunen.
|
| * Encoding Support for IPTC metadata. Issue: IMAGING-168. Thanks to Yavuz Kavus.
|
| * Array sizes not checked for overflow in BmpImageParser. Issue: IMAGING-279.
|
| * ArrayIndexOutOfBoundsException on reading simple GeoTIFF. Issue: IMAGING-265. Thanks to Gary Lucas.
|
| * BMP Parser physicalWidthDpi and physicalHeightDpi truncated before rounding off. Issue: IMAGING-264.
|
| * Failure when reading a partial raster from a floating-point TIFF Issue: IMAGING-263. Thanks to Gary Lucas.
|
| * Fix typos Issue: IMAGING-291. Thanks to Arturo Bernal.
|
| * Fix javadoc Issue: IMAGING-289. Thanks to Arturo Bernal.
|
| * Fix IptcParserTest on Windows Issue: IMAGING-308. Thanks to Gary Lucas.
|
| * Read integer data from GeoTIFFS Issue: IMAGING-266. Thanks to Gary Lucas.
|
| * Corrected handling of ExtraSamples tag Issue: IMAGING-312. Thanks to Gary Lucas.
|
| * Decoding of Rational Numbers broken when large values present Issue: IMAGING-285. Thanks to Gary Lucas.
|
| * Update examples, add GeoTIFF metadata to output Issue: IMAGING-314. Thanks to Gary Lucas.
|
| * Read TIFFs with multiple floating-point sampless Issue: IMAGING-311. Thanks to Gary Lucas.
|
| * A PNG image using indexed color type but no PLTE chunks throws NPE. Issue: IMAGING-317. Thanks to OSS-Fuzz.
|
| * Validate when accessing GIF color table array. Issue: IMAGING-318. Thanks to OSS-Fuzz.
|
|
|
| Changes |
| ------- |
|
|
| * Bump animal-sniffer-maven-plugin from 1.19 to 1.21 #120, #199. Thanks to Dependabot.
|
| * Bump maven-checkstyle-plugin from 3.1.1 to 3.1.2 #117. Thanks to Dependabot.
|
| * Bump spotbugs from 4.0.6 to 4.7.0 #111 #118 #123 #128 #156 #160 #167 #174 #185 #188 #191 #208 #218. Thanks to Dependabot.
|
| * Bump spotbugs-maven-plugin from 4.0.4 to 4.6.0.0 #111 #115 #125 #129 #157 #171 #176 #180 #186 #192 #211. Thanks to Dependabot.
|
| * Bump maven-pmd-plugin from 3.13.0 to 3.15.0 #109 #166. Thanks to Dependabot.
|
| * Bump actions/setup-java from v1.4.0 to v3 #92 #95 #101 #127 #213. Thanks to Dependabot.
|
| * Bump commons-io from 2.7 to 2.11.0 #96 #152 #153, #158. Thanks to Dependabot.
|
| * Bump junit-jupiter from 5.6.2 to 5.8.2 #97 #119 #151 #170 #172 #187. Thanks to Dependabot.
|
| * Bump actions/checkout from v2.3.2 to v3 #99 #107 #175 #181 #205. Thanks to Dependabot.
|
| * Remove redundant local variable Issue: IMAGING-290. Thanks to Arturo Bernal.
|
| * Java 8 improvements Issue: IMAGING-288. Thanks to Arturo Bernal.
|
| * Simplify assertions in tests Issue: IMAGING-287. Thanks to Arturo Bernal.
|
| * Use 'compare()' method to compare numbers Issue: IMAGING-295. Thanks to Arturo Bernal.
|
| * Use java style array declaration Issue: IMAGING-294. Thanks to Arturo Bernal.
|
| * Throw ImageReadException if the PNG parser is given an image with invalid ICC Profile. Issue: IMAGING-298. Thanks to OSS-Fuzz.
|
| * Throw ImageReadException if the GIF parser is given an image with invalid image data instead of throwing IndexOutOfBoundsException. Issue: IMAGING-300. Thanks to OSS-Fuzz.
|
| * Throw ImageReadException if the GIF parser is given an image with invalid Lzw table instead of throwing IndexOutOfBoundsException. Issue: IMAGING-301. Thanks to OSS-Fuzz.
|
| * Throw ImageReadException if the JPEG parser is given an image with a negative number of segments in SOF0Segment. Issue: IMAGING-302. Thanks to OSS-Fuzz.
|
| * Use Comparator combinator Issue: IMAGING-304. Thanks to Arturo Bernal.
|
| * Simplify If-else conditions Issue: IMAGING-303. Thanks to Arturo Bernal.
|
| * Replace Collections.sort with list.sort Issue: IMAGING-305. Thanks to Arturo Bernal.
|
| * Remove redundant variables Issue: IMAGING-315. Thanks to Arturo Bernal.
|
| * Bump github/codeql-action from 1 to 2 #216 Thanks to Dependabot.
|
|
|
|
|
| Have fun!
|
| -Apache Commons Imaging team
|
| |
| ----------------------------------------------------------------------------- |
| |
| The Apache Commons Imaging team is pleased to announce the commons-imaging-1.0-alpha2 release! |
| |
| Apache Commons Imaging (previously Sanselan) is a pure-Java image library. |
| |
| There are breaking changes between 1.0-alpha1 and 1.0-alpha2, until we stabilize the API for our 1.0 release. |
| Users are encouraged to read the release notes when updating to this new release. |
| |
| For details of the fixes and new features please see: |
| |
| https://www.apache.org/dist/commons/imaging/RELEASE-NOTES.txt |
| |
| [These are also included with the binary and source archives] |
| |
| The changes are also available at: |
| https://commons.apache.org/imaging/changes-report.html |
| |
| Binary and source archives are available from: |
| |
| https://commons.apache.org/proper/commons-imaging/download_imaging.cgi |
| |
| Please see the Apache Commons Imaging website for full details: |
| |
| https://commons.apache.org/imaging/ |
| |
| The Maven coordinates are: |
| |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-imaging</artifactId> |
| <version>1.0-alpha2</version> |
| |
| New features |
| ------------ |
| |
| * IMAGING-248: ICNS: missing element types; some safety checks Thanks to Greg Shrago. |
| * IMAGING-245: Add disposal method to GIF metadata Thanks to Christoffer Rydberg. |
| * IMAGING-146: Add documentation for the color package |
| * IMAGING-244: Use isEmpty instead of comparing size() with integers |
| * IMAGING-243: PNG Writer Indexed Color with semi-transparent Pixels and Better Compression Thanks to Andreas Menze. |
| * IMAGING-239: Add inflate (deflate algorithm) to TIFF files Thanks to Paul Austin. |
| * IMAGING-164: Simplify code in IcoImageParser::writeImage Thanks to Michael Groß. |
| * IMAGING-165: Add the fields from TiffReader.Collector to TiffContents Thanks to Michael Groß. |
| * IMAGING-228: Remove private method PhotometricInterpreterLogLuv#cube by Math.pow |
| * IMAGING-236: Add support to read multiple images from GIF Thanks to Christoffer Rydberg. |
| |
| Fixed Bugs |
| ---------- |
| |
| * IMAGING-247: Fix crash when reading TIFF using PackBits Thanks to Gary Lucas. |
| * IMAGING-246: Invalid Block Size error prevents handling of block 1084, Macintosh NSPrintInfo |
| * IMAGING-163: Add XmpEmbedabble interface to parsers that support it |
| * IMAGING-151: ColorGroup.color_counts is mutable public List and is multiply sorted |
| * IMAGING-242: Upgrade to JUnit 5 |
| * IMAGING-241: Copy byte arrays fixing TODO markers |
| * IMAGING-136: Imaging.getImageInfo() fails to read JPEG file Thanks to Michael Groß. |
| * IMAGING-238: Return copied byte arrays in Png Chunk and Png Chunk ICCP |
| * IMAGING-230: Properly close resources with try-with-resources in T4AndT6Compression |
| * IMAGING-134: Invalid (RST) marker found in entropy data Thanks to Michael Sommerville. |
| * IMAGING-130: Reading of some GIF images throws java.io.IOException: AddStringToTable: codes: 4096 code_size: 12 Thanks to Michael Sommerville. |
| * IMAGING-224: Fix build errors in Travis |
| * IMAGING-167: Possible infinite loop at XpmImageParser::writeImage Thanks to Michael Groß. |
| * IMAGING-211: Imaging.getBufferedImage fails throwing java.lang.ArrayIndexOutOfBoundsException for specific inputs |
| * IMAGING-210: Imaging.getBufferedImage fails throwing NegativeArraySizeException for specific inputs |
| |
| Changes |
| ------- |
| |
| * IMAGING-258: Prevent exception in TIFF when reading EXIF directory Thanks to Gary Lucas. |
| * IMAGING-260: Fix mvn site failure with JavaNCSS parse error |
| * IMAGING-259: Enhance TIFF DataReaders speed for compressed RGB Thanks to Gary Lucas. |
| * IMAGING-251: Support for TIFF floating-point formats Thanks to Gary Lucas. |
| * IMAGING-254: Small code improvements |
| * IMAGING-253: ByteSourceInputStream has initialized its length when reading starts Thanks to David Hrbacek. |
| * IMAGING-249: Make IPTCBlock members private and add getter/setter |
| * Update tests from commons-io:commons-io 2.6 to 2.7. Thanks to Gary Gregory. |
| * Update commons-parent from 50 to 51 #88. Thanks to Dependabot. |
| * Update actions/checkout from v1 to v2.3.1 #87. Thanks to Dependabot. |
| * Update junit-jupiter from 5.5.2 to 5.6.2 #86. Thanks to Dependabot. |
| |
| |
| Have fun! |
| -Apache Commons Imaging team |
| |
| ----------------------------------------------------------------------------- |
| |
| Apache Commons Imaging |
| Version 1.0-alpha1 |
| Release Notes |
| |
| INTRODUCTION |
| ------------ |
| |
| Apache Commons Imaging is a pure-Java image library for reading and writing |
| a variety of image formats. |
| |
| For complete information on Commons Imaging, including sample code, |
| instructions on how to submit bug reports, patches, or suggestions for |
| improvement, see the Apache Commons Net website: |
| |
| http://commons.apache.org/imaging/ |
| |
| Please note that the project was previously known as Apache Sanselan, |
| and has been renamed to Apache Commons Imaging. As part of this rename: |
| |
| * the package changed to |
| org.apache.commons.imaging |
| from |
| org.apache.sanselan |
| |
| * the main class is now |
| org.apache.commons.imaging.Imaging |
| and not |
| org.apache.sanselan.Sanselan |
| |
| * the Maven coordinates are now: |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-imaging</artifactId> |
| <name>Commons Imaging</name> |
| instead of the old: |
| <groupId>org.apache.sanselan</groupId> |
| <artifactId>sanselan</artifactId> |
| <name>Apache Sanselan</name> |
| |
| * the website is |
| http://commons.apache.org/imaging |
| and not |
| http://commons.apache.org/sanselan |
| |
| * etc. |
| |
| VERSION HISTORY |
| --------------- |
| |
| Release 1.0-alpha1 |
| ------------------ |
| |
| First 1.0 alpha release. |
| |
| New features |
| ------------ |
| |
| * IMAGING-75: Added accessor methods for a number of ImageInfo properties. |
| * IMAGING-71: Applied patch contributed by Nicolas Richeton, adding getEXIFThumbnailSize() and getEXIFThumbnailData() methods to JpegImageMetadata. Thanks to Nicolas Richeton. |
| * IMAGING-56: Add support for the ICNS icon format. Thanks to damjan. |
| * IMAGING-58: Add support for PCX, DCX, WBMP, XBM and XPM images. |
| * IMAGING-64: Add support for TIFF files with compression=2, (CCITT Group 3 1-Dimensional Modified Huffman run length encoding). |
| * IMAGING-77: Add a type-safe high-level API for writing TIFF fields. |
| * IMAGING-51: Add TagInfoXpText for fields like XPTITLE, and encode/decode it using UTF-16LE like Windows does. |
| * IMAGING-60: Added support for reading the RGBE / Radiance HDR image format. Thanks to proyal. |
| * IMAGING-68: Add a field to IptcRecord that contains its raw bytes, and a getter for this value. |
| * IMAGING-73: Provide a way to write EXIF data into files using Sanselan.writeImage(). |
| * IMAGING-47: Run a Findbugs analysis on "mvn site". Also audit and fix resource leaks. Thanks to adrian2k7. |
| * IMAGING-65: Provide a way to write the pixel density (DPI) into an image. |
| * IMAGING-61: Include a test utility for timing and memory in project example classes. Thanks to gwlucas. |
| * IMAGING-81: Add more Javadoc to main package. Thanks to gwlucas. |
| * IMAGING-89: Detect the YCCK color space/type in JPEG files' APP14 segment. |
| * IMAGING-94: Add ability to load partial TIFF images Thanks to gwlucas. |
| |
| Fixed Bugs |
| ---------- |
| |
| * IMAGING-199: All tEXt chunks are not returned from PngImageParser.getMetadata Thanks to Ric Emery. |
| * IMAGING-220: JpegDecoder takes a long time (+10s) to decode a bad JPEG |
| * IMAGING-219: Imaging gets stuck parsing a RGBE input file |
| * IMAGING-215: ArrayIndexOutOfBoundsException in DhtSegment |
| * IMAGING-203: JPEG segment size not validated Thanks to Rody Kersten. |
| * IMAGING-209: PnmImageParser throws ImageWriteException when writing if PnmImageParser.PARAM_KEY_PNM_RAWBITS is provided Thanks to Isak Wertwein. |
| * IMAGING-205: Imaging (Apache Sanselan) produces "odd offsets" in (EXIF) metadata |
| * IMAGING-195: Incorrect Maven coordinates on project website Thanks to Keith Strydom. |
| * IMAGING-190: ImageDataReader.decompress() overwrites its input |
| * IMAGING-193: Duplicate class names |
| * IMAGING-189: parseXpmValuesSection uses && instead of || |
| * IMAGING-181: EXIF lens metadata tags missing in Commons Imaging but recognized in exiftool |
| * IMAGING-172: Microsoft tags are not seen in MS Windows Properties/Details dialog. |
| * IMAGING-176: TiffImageParser.getImageInfo() throws exception when "Compression" field is missing. Thanks to Gabriel Axel. |
| * IMAGING-178: PnmImageParser does not check the validity of input PAM header. Thanks to emopers. |
| * IMAGING-171: MicrosoftTagTest rewrite image exif fails in some environments Thanks to Jan Helbich. |
| * IMAGING-169: PnmImageParser throws NumberFormatException instead of ImageReadException when parsing invalid images Thanks to Nebu Pookins. |
| * IMAGING-144: TiffOutputSet.setGPSInDegrees should make sure, GPSVersionID is set Thanks to Paul Hartmann. |
| * IMAGING-117: Classes should not expose mutable arrays |
| * IMAGING-145: DumpImage method for JPEG reports it's coming from TIFF. Thanks to Chris Carman. |
| * IMAGING-137: Can not set EXIF_TAG_EXIF_VERSION tag. |
| * IMAGING-140: ExifReWriter always writes EXIF segment before JFIF segment. Thanks to Gavin Shiels. |
| * IMAGING-131: Allow null parameters in PngImageParser.getBufferedImage(), and add some tests for null parameters. |
| * IMAGING-121: Null Pointer exception while extracting metadata for CR2 image. Thanks to Piyush Kapoor. |
| * IMAGING-115: DhtSegment class contains mutable public arrays. |
| * IMAGING-117: SofnSegment.components - public mutable array. |
| * IMAGING-116: GenericSegment.bytes - public mutable array. |
| * IMAGING-118: interface RgbeConstants contains mutable array. |
| * IMAGING-114: ComSegment.comment is a public final byte array. |
| * IMAGING-109: Several files contain non-UTF8 characters. |
| * IMAGING-113: Cannot read multipage tiff. |
| * IMAGING-108: JPEG EOI marker could not be found at expected location. |
| * IMAGING-101: GIF dimensions transposed. Thanks to Colm O hEigeartaigh. |
| * IMAGING-23: JpegXMPWriter throws NullPointerException. |
| * IMAGING-74: 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. |
| * IMAGING-2: SanselanGuessFormatTest and SanselanTestConstants use Java 1.5 method String.replace(CharSequence, CharSequence). |
| * IMAGING-80: Sanselan tests fail on Windows. |
| * IMAGING-18: Fix for "JpegImageMetadata getEXIFThumbnail only works on Jpeg thumbnails stored as Tiff images" issue. |
| Jpeg thumbnails are read using ImageIO. Thanks to James E-J. |
| * IMAGING-48: JpegImageMetadata getEXIFThumbnail may raise a null pointer exception. |
| * IMAGING-52: Implement dumpImageFile for ICO files and fix a typo. Thanks to damjan. |
| * IMAGING-12: Tiff (exif) tags of type double written in wrong byte order. Thanks to gwlucas. |
| * IMAGING-30: The isTransparent flag is not set on transparent PNGs. Thanks to clement.escoffier. |
| * IMAGING-11: Ignore TIFF entries that have invalid offsets and/or lengths when we are not in strict mode. |
| * IMAGING-78: readDirectory method in TiffReader doesn't gracefully handle exceptions that can be thrown from ByteSource implementations. |
| * IMAGING-24: Search all tags instead of just EXIF tags when parsing TIFF metadata tags, and try to match on directory type as well. |
| * IMAGING-21: Don't allow very large TIFF lengths to be interpreted as negative because they have the highest order bit set. |
| * IMAGING-50: Make JPEG parsing highly resilient: skip all bytes after the end of a segment until the next segment (0xFF followed by non-0xFF). |
| * IMAGING-16: Fix reading ASCII tags in TIFF files. |
| * IMAGING-3: Ignore string differences in our tests when 7 bit unclean TIFF string are copied. |
| * IMAGING-41: Don't redefine BYTE_ORDER_BIG_ENDIAN and BYTE_ORDER_LITTLE_ENDIAN in UnicodeMetricsUTF16. |
| * IMAGING-35: Fixed issue "FieldTypeASCII does not conform to the EXIF specification," identified by Libor Nenadál. |
| * IMAGING-31: 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. |
| * IMAGING-13: Added checks in ByteSource's getBlock() methods for invalid params. |
| * IMAGING-46: Fixed a possible NPE in Sanselan.getICCProfile pointed out by Jon Weygandt. |
| * IMAGING-76: Improve ICO file support. Thanks to damjan. |
| * IMAGING-49: Preserve the byte range occupied by the Maker Notes, so rewriting it doesn't corrupt it. |
| * IMAGING-29: Read in the full IPTC block before trying to ignore it, so we don't lose our position in the stream. Thanks to alexvigdor. |
| * IMAGING-45: Fix the GIF BitsPerPixel formula in GifImageParser's getImageInfo(). Thanks to pkapoor. |
| * IMAGING-39: Fix various problems with reading and writing EXIF tags. |
| * IMAGING-22: Eliminate or hide public mutable final arrays in the API. |
| * IMAGING-43: If the TIFF rows per strip is not present, assume it is the image length. Thanks to pkapoor. |
| * IMAGING-17: Make BitInputStream sensitive to byte order. Allows 48 BPP TIFF files to load. Thanks to pkapoor. |
| * IMAGING-38: Fix the PhysicalWidthDpi calculation for JPEG images. Thanks to tjoris. |
| * IMAGING-19: Fix reading DPI for TIFF files. Thanks to vvd. |
| * IMAGING-44: Fix reading DPI for PNG files. Thanks to vvd. |
| * IMAGING-40: Add the Software TIFF tag, and get the byte order after reading the first TIFF directory. Thanks to pkapoor. |
| * IMAGING-6: Correct the expected size of the decompressed TIFF image data, and improve sample depth scaling for PNG images. |
| * IMAGING-15: Stop JpegImageMetadata from throwing NPE if the exif field is null. Thanks to pkapoor. |
| * IMAGING-67: Speed up reading paletted TIFF files. Thanks to gwlucas. |
| * IMAGING-8: Allow TIFF fields to change size during encoding. Fix a broken test that assumes they never do. |
| * IMAGING-36: Fix sample usage links on the website. |
| * IMAGING-70: Reduce memory usage when reading TIFF files. Thanks to gwlucas. |
| * IMAGING-33: Fixed the differencing predictor for tiled TIFF images. |
| * IMAGING-5: Update website, fix some broken links and remove old code. |
| * IMAGING-69: Add a streamlined TIFF reader that reduces load time by a factor of 5. Thanks to gwlucas. |
| * IMAGING-82: Fix BMP width and height DPI. Thanks to pkapoor. |
| * IMAGING-86: Fix the lengths for DateTimeOriginal and DateTimeDigitized TIFF/EXIF tags. |
| * IMAGING-88: Method lowerBound in org.apache.commons.imaging.common.itu_t4.T4AndT6Compression has a division error. Thanks to craigkelly. |
| * IMAGING-92: Issue trying to update GPS metadata info in a JPG. Thanks to hmarmy. |
| * IMAGING-93: Tiled TIFF images do not correctly load partial tiles. Thanks to gwlucas. |
| * IMAGING-90: Allow non-1 TIFF field lengths when parsing offset fields in non-strict mode. |
| * IMAGING-99: java.io.IOException: Could not read block Thanks to st.h. |
| |
| Changes |
| ------- |
| |
| * IMAGING-154: Remove Debug class |
| * IMAGING-124: Tidy up IconParser Thanks to Jens Kapitza. |
| * IMAGING-123: remove duplicated lines in T4AndT6Compression Thanks to Jens Kapitza. |
| * IMAGING-186: Add sCAL support to PNG reading and writing. Thanks to Ric Emery. |
| * IMAGING-184: Update platform from Java 5 to 7 |
| * IMAGING-112: JpegIptcRewriter.removeIPTC() does not remove all metadata Thanks to Xavier Dury. |
| * IMAGING-166: ByteSourceImageTest: Local variable hides a field Thanks to Michael Groß. |
| * IMAGING-156: Refactor TagConstants |
| * IMAGING-126: TIFF and PNG images should not be bigger than the ones created by java ImageIO Thanks to Gary Lucas. |
| * IMAGING-147: Add color constants Thanks to Stephan Koeninger. |
| * IMAGING-150: Implement equals and hashcode on color classes Thanks to Stephan Koeninger. |
| * IMAGING-91: ByteSourceInputStream.streamLength could be a long. |
| * IMAGING-95: Some tiff processing takes very long. Thanks to amitgupt. |
| * IMAGING-223: Update from Java 7 to Java 8. Thanks to Gary Gregory. |
| |
| Minimum Java version: 1.5 |
| Compatibility with 0.97: |
| Binary compatible: No. |
| Source compatible: No. |
| Semantic compatible: No. |
| |
| |
| 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 |