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.

Changes in this version include:

New features:
o Add CIELAB and DIN99 conversion, reduce code duplication, and issues related to zero-division and precision.  Issue: IMAGING-283. Thanks to Wanja Gayk. 
o Imaging.getBufferedImage() drops alpha layer for TIFF images.  Issue: IMAGING-216. Thanks to Gary Lucas. 
o Consolidate redundant methods in TIFF datareaders.  Issue: IMAGING-269. Thanks to Gary Lucas. 
o Add list of TIFF files and example survey application.  Issue: IMAGING-268. Thanks to Gary Lucas. 

Fixed Bugs:
o Add PNG predictor to reduce output size.  Issue: IMAGING-330. Thanks to Gary Lucas. 
o Change getExif name to getOutputSet.  Issue: IMAGING-327. Thanks to Gary Lucas. 
o Prevent OutOfMemoryError in BmpImageParser. This can happen when the color palette length is
        a large negative number.  Issue: IMAGING-325. Thanks to Jin Wang. 
o Read TIFFs with 32-bit samples.  Issue: IMAGING-320. Thanks to Gary Lucas. 
o 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. 
o Encoding Support for IPTC metadata.  Issue: IMAGING-168. Thanks to Yavuz Kavus. 
o Array sizes not checked for overflow in BmpImageParser.  Issue: IMAGING-279. 
o ArrayIndexOutOfBoundsException on reading simple GeoTIFF.  Issue: IMAGING-265. Thanks to Gary Lucas. 
o BMP Parser physicalWidthDpi and physicalHeightDpi truncated before rounding off.  Issue: IMAGING-264. 
o Failure when reading a partial raster from a floating-point TIFF  Issue: IMAGING-263. Thanks to Gary Lucas. 
o Fix typos  Issue: IMAGING-291. Thanks to Arturo Bernal. 
o Fix javadoc  Issue: IMAGING-289. Thanks to Arturo Bernal. 
o Fix IptcParserTest on Windows  Issue: IMAGING-308. Thanks to Gary Lucas. 
o Read integer data from GeoTIFFS  Issue: IMAGING-266. Thanks to Gary Lucas. 
o Corrected handling of ExtraSamples tag  Issue: IMAGING-312. Thanks to Gary Lucas. 
o Decoding of Rational Numbers broken when large values present  Issue: IMAGING-285. Thanks to Gary Lucas. 
o Update examples, add GeoTIFF metadata to output  Issue: IMAGING-314. Thanks to Gary Lucas. 
o Read TIFFs with multiple floating-point sampless  Issue: IMAGING-311. Thanks to Gary Lucas. 
o A PNG image using indexed color type but no PLTE chunks throws NPE.  Issue: IMAGING-317. Thanks to OSS-Fuzz. 
o Validate when accessing GIF color table array.  Issue: IMAGING-318. Thanks to OSS-Fuzz. 

Changes:
o Bump animal-sniffer-maven-plugin from 1.19 to 1.21 #120, #199. Thanks to Dependabot. 
o Bump maven-checkstyle-plugin from 3.1.1 to 3.1.2 #117. Thanks to Dependabot. 
o 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. 
o 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. 
o Bump maven-pmd-plugin from 3.13.0 to 3.15.0 #109 #166. Thanks to Dependabot. 
o Bump actions/setup-java from v1.4.0 to v3 #92 #95 #101 #127 #213. Thanks to Dependabot. 
o Bump commons-io from 2.7 to 2.11.0 #96 #152 #153, #158. Thanks to Dependabot. 
o Bump junit-jupiter from 5.6.2 to 5.8.2 #97 #119 #151 #170 #172 #187. Thanks to Dependabot. 
o Bump actions/checkout from v2.3.2 to v3 #99 #107 #175 #181 #205. Thanks to Dependabot. 
o Remove redundant local variable  Issue: IMAGING-290. Thanks to Arturo Bernal. 
o Java 8 improvements  Issue: IMAGING-288. Thanks to Arturo Bernal. 
o Simplify assertions in tests  Issue: IMAGING-287. Thanks to Arturo Bernal. 
o Use 'compare()' method to compare numbers  Issue: IMAGING-295. Thanks to Arturo Bernal. 
o Use java style array declaration  Issue: IMAGING-294. Thanks to Arturo Bernal. 
o Throw ImageReadException if the PNG parser is given an image with invalid ICC Profile.  Issue: IMAGING-298. Thanks to OSS-Fuzz. 
o 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. 
o 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. 
o 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. 
o Use Comparator combinator  Issue: IMAGING-304. Thanks to Arturo Bernal. 
o Simplify If-else conditions  Issue: IMAGING-303. Thanks to Arturo Bernal. 
o Replace Collections.sort with list.sort  Issue: IMAGING-305. Thanks to Arturo Bernal. 
o Remove redundant variables  Issue: IMAGING-315. Thanks to Arturo Bernal. 
o Bump github/codeql-action from 1 to 2 #216 Thanks to Dependabot. 


Have fun!
-Apache Commons Imaging team

