Apache Commons logo Commons Imaging™ logo

Apache Commons Imaging Release Notes

Release History

Version Date Description
1.0-alpha3 2022-05-13 Third 1.0 alpha release
1.0-alpha2 2020-08-01 Second 1.0 alpha release
1.0-alpha1 2019-04-28 First 1.0 alpha release

Release 1.0-alpha3 – 2022-05-13

Type Changes By
Fix Add PNG predictor to reduce output size. Fixes IMAGING-330. Thanks to Gary Lucas. kinow
Fix Change getExif name to getOutputSet. Fixes IMAGING-327. Thanks to Gary Lucas. kinow
Fix Prevent OutOfMemoryError in BmpImageParser. This can happen when the color palette length is a large negative number. Fixes IMAGING-325. Thanks to Jin Wang. kinow
Fix Read TIFFs with 32-bit samples. Fixes IMAGING-320. Thanks to Gary Lucas. kinow
Fix 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. Fixes IMAGING-159. Thanks to Bruno P. Kinoshita, Gary Lucas, Matt Juntunen. kinow
Fix Encoding Support for IPTC metadata. Fixes IMAGING-168. Thanks to Yavuz Kavus. kinow
Add Add CIELAB and DIN99 conversion, reduce code duplication, and issues related to zero-division and precision. Fixes IMAGING-283. Thanks to Wanja Gayk. kinow
Fix Array sizes not checked for overflow in BmpImageParser. Fixes IMAGING-279. kinow
Update Bump animal-sniffer-maven-plugin from 1.19 to 1.21 #120, #199. Thanks to Dependabot. kinow
Update Bump maven-checkstyle-plugin from 3.1.1 to 3.1.2 #117. Thanks to Dependabot. kinow
Update 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. kinow
Update 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. kinow
Update Bump maven-pmd-plugin from 3.13.0 to 3.15.0 #109 #166. Thanks to Dependabot. kinow
Add Imaging.getBufferedImage() drops alpha layer for TIFF images. Fixes IMAGING-216. Thanks to Gary Lucas. kinow
Add Consolidate redundant methods in TIFF datareaders. Fixes IMAGING-269. Thanks to Gary Lucas. kinow
Add Add list of TIFF files and example survey application. Fixes IMAGING-268. Thanks to Gary Lucas. kinow
Fix ArrayIndexOutOfBoundsException on reading simple GeoTIFF. Fixes IMAGING-265. Thanks to Gary Lucas. kinow
Update Bump actions/setup-java from v1.4.0 to v3 #92 #95 #101 #127 #213. Thanks to Dependabot. kinow
Update Bump commons-io from 2.7 to 2.11.0 #96 #152 #153, #158. Thanks to Dependabot. kinow
Update Bump junit-jupiter from 5.6.2 to 5.8.2 #97 #119 #151 #170 #172 #187. Thanks to Dependabot. kinow
Update Bump actions/checkout from v2.3.2 to v3 #99 #107 #175 #181 #205. Thanks to Dependabot. kinow
Fix BMP Parser physicalWidthDpi and physicalHeightDpi truncated before rounding off. Fixes IMAGING-264. kinow
Fix Failure when reading a partial raster from a floating-point TIFF. Fixes IMAGING-263. Thanks to Gary Lucas. kinow
Fix Fix typos. Fixes IMAGING-291. Thanks to Arturo Bernal. kinow
Fix Fix javadoc. Fixes IMAGING-289. Thanks to Arturo Bernal. kinow
Update Remove redundant local variable. Fixes IMAGING-290. Thanks to Arturo Bernal. kinow
Update Java 8 improvements. Fixes IMAGING-288. Thanks to Arturo Bernal. kinow
Update Simplify assertions in tests. Fixes IMAGING-287. Thanks to Arturo Bernal. kinow
Update Use 'compare()' method to compare numbers. Fixes IMAGING-295. Thanks to Arturo Bernal. kinow
Update Use java style array declaration. Fixes IMAGING-294. Thanks to Arturo Bernal. kinow
Update Throw ImageReadException if the PNG parser is given an image with invalid ICC Profile. Fixes IMAGING-298. Thanks to OSS-Fuzz. kinow
Update Throw ImageReadException if the GIF parser is given an image with invalid image data instead of throwing IndexOutOfBoundsException. Fixes IMAGING-300. Thanks to OSS-Fuzz. kinow
Update Throw ImageReadException if the GIF parser is given an image with invalid Lzw table instead of throwing IndexOutOfBoundsException. Fixes IMAGING-301. Thanks to OSS-Fuzz. kinow
Update Throw ImageReadException if the JPEG parser is given an image with a negative number of segments in SOF0Segment. Fixes IMAGING-302. Thanks to OSS-Fuzz. kinow
Update Use Comparator combinator. Fixes IMAGING-304. Thanks to Arturo Bernal. kinow
Update Simplify If-else conditions. Fixes IMAGING-303. Thanks to Arturo Bernal. kinow
Update Replace Collections.sort with list.sort. Fixes IMAGING-305. Thanks to Arturo Bernal. kinow
Fix Fix IptcParserTest on Windows. Fixes IMAGING-308. Thanks to Gary Lucas. kinow
Fix Read integer data from GeoTIFFS. Fixes IMAGING-266. Thanks to Gary Lucas. kinow
Fix Corrected handling of ExtraSamples tag. Fixes IMAGING-312. Thanks to Gary Lucas. kinow
Fix Decoding of Rational Numbers broken when large values present. Fixes IMAGING-285. Thanks to Gary Lucas. kinow
Fix Update examples, add GeoTIFF metadata to output. Fixes IMAGING-314. Thanks to Gary Lucas. kinow
Fix Read TIFFs with multiple floating-point sampless. Fixes IMAGING-311. Thanks to Gary Lucas. kinow
Update Remove redundant variables. Fixes IMAGING-315. Thanks to Arturo Bernal. kinow
Fix A PNG image using indexed color type but no PLTE chunks throws NPE. Fixes IMAGING-317. Thanks to OSS-Fuzz. kinow
Fix Validate when accessing GIF color table array. Fixes IMAGING-318. Thanks to OSS-Fuzz. kinow
Update Bump github/codeql-action from 1 to 2 #216 Thanks to Dependabot. kinow

Release 1.0-alpha2 – 2020-08-01

Type Changes By
Update Prevent exception in TIFF when reading EXIF directory. Fixes IMAGING-258. Thanks to Gary Lucas. kinow
Update Fix mvn site failure with JavaNCSS parse error. Fixes IMAGING-260. kinow
Update Enhance TIFF DataReaders speed for compressed RGB. Fixes IMAGING-259. Thanks to Gary Lucas. kinow
Fix Fix crash when reading TIFF using PackBits. Fixes IMAGING-247. Thanks to Gary Lucas. kinow
Update Support for TIFF floating-point formats. Fixes IMAGING-251. Thanks to Gary Lucas. kinow
Update Small code improvements. Fixes IMAGING-254. kinow
Update ByteSourceInputStream has initialized its length when reading starts. Fixes IMAGING-253. Thanks to David Hrbacek. kinow
Update Make IPTCBlock members private and add getter/setter. Fixes IMAGING-249. kinow
Add ICNS: missing element types; some safety checks. Fixes IMAGING-248. Thanks to Greg Shrago. kinow
Fix Invalid Block Size error prevents handling of block 1084, Macintosh NSPrintInfo. Fixes IMAGING-246. kinow
Fix Add XmpEmbedabble interface to parsers that support it. Fixes IMAGING-163. kinow
Add Add disposal method to GIF metadata. Fixes IMAGING-245. Thanks to Christoffer Rydberg. kinow
Add Add documentation for the color package. Fixes IMAGING-146. kinow
Add Use isEmpty instead of comparing size() with integers. Fixes IMAGING-244. kinow
Fix ColorGroup.color_counts is mutable public List and is multiply sorted. Fixes IMAGING-151. kinow
Add PNG Writer Indexed Color with semi-transparent Pixels and Better Compression. Fixes IMAGING-243. Thanks to Andreas Menze. kinow
Fix Upgrade to JUnit 5. Fixes IMAGING-242. kinow
Fix Copy byte arrays fixing TODO markers. Fixes IMAGING-241. kinow
Fix Imaging.getImageInfo() fails to read JPEG file. Fixes IMAGING-136. Thanks to Michael Groß. kinow
Fix Return copied byte arrays in Png Chunk and Png Chunk ICCP. Fixes IMAGING-238. kinow
Add Add inflate (deflate algorithm) to TIFF files. Fixes IMAGING-239. Thanks to Paul Austin. kinow
Add Simplify code in IcoImageParser::writeImage. Fixes IMAGING-164. Thanks to Michael Groß. kinow
Add Add the fields from TiffReader.Collector to TiffContents. Fixes IMAGING-165. Thanks to Michael Groß. kinow
Fix Properly close resources with try-with-resources in T4AndT6Compression. Fixes IMAGING-230. kinow
Fix Invalid (RST) marker found in entropy data. Fixes IMAGING-134. Thanks to Michael Sommerville. kinow
Fix Reading of some GIF images throws java.io.IOException: AddStringToTable: codes: 4096 code_size: 12. Fixes IMAGING-130. Thanks to Michael Sommerville. kinow
Add Remove private method PhotometricInterpreterLogLuv#cube by Math.pow. Fixes IMAGING-228. kinow
Fix Fix build errors in Travis. Fixes IMAGING-224. kinow
Fix Possible infinite loop at XpmImageParser::writeImage. Fixes IMAGING-167. Thanks to Michael Groß. kinow
Fix Imaging.getBufferedImage fails throwing java.lang.ArrayIndexOutOfBoundsException for specific inputs. Fixes IMAGING-211. kinow
Fix Imaging.getBufferedImage fails throwing NegativeArraySizeException for specific inputs. Fixes IMAGING-210. kinow
Add Add support to read multiple images from GIF. Fixes IMAGING-236. Thanks to Christoffer Rydberg. kinow
Update Update tests from commons-io:commons-io 2.6 to 2.7. Thanks to Gary Gregory. ggregory
Update Update commons-parent from 50 to 51 #88. Thanks to Dependabot. ggregory
Update Update actions/checkout from v1 to v2.3.1 #87. Thanks to Dependabot. ggregory
Update Update junit-jupiter from 5.5.2 to 5.6.2 #86. Thanks to Dependabot. ggregory

Release 1.0-alpha1 – 2019-04-28

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