<?xml version="1.0"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->

<!--
This file is used by the maven-changes-plugin to generate the release notes.
Useful ways of finding items to add to this file are:

1.  Add items when you fix a bug or add a feature (this makes the 
release process easy :-).

2.  Do a Jira search for tickets closed since the previous release.

3.  Use the report generated by the maven-changelog-plugin to see all
CVS commits.  Set the project.properties' maven.changelog.range 
property to the number of days since the last release.


To generate the release notes from this file:

mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]

then tweak the source formatting if necessary and regenerate, then commit

The <action> type attribute can be add,update,fix,remove.
-->

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