Change log
==========

v3.3.9 June 2024
----------------

 * Something something compilation

v3.3.7 July 2022
----------------

 * Dependence fidling
 * Jpg: do not call "error" in the parser, use fail instead.

v3.3.7 March 2022
-----------------

 * Jpg: Fixing renderng bug with MCUs with single block in width and
   multiple in height

v3.3.6 October 2021
-------------------

 * Bytestring bound bump
 * Fix bug #187.  (Some JPEGs are misidentified as SourceTiff.)
 * Fix EXIF handling of strings of four characters or fewer.
 * Fix endianness bug in short ExifString and ExifUndefined.


v3.3.5 January 2020
-------------------

Maintenance release to push various pull requests onto
hackage

 * Exporting Pixel32 (will)
 * Palettization of transparent frames in Gif (flutterlice)
 * Documentation fixes (lehins)

v3.3.4 September 2019
---------------------

 * support reading compressed zTXt metadata from PNG files (claudeha)
 * Add helper functions to convert a DynamicImage to RGB16 (uglyoldbob)
 * Fix RGB to CMYK conversion (lehins)

v3.3.3.1 June 2019
------------------

 * New GHC maintenance (thanks to ekmett)

v3.3.3 December 2018
--------------------

 * Enhanced: loading of bitmap format (thanks to CLowcay)
 * Refactoring: exposing more internal modules (thanks to wyager)
 * Refactoring: exposing dynamicMap & dynamicPixelMap
   through `Codec.Picture` (thnks to LightAndLight)

 * v3.3.3.1: fixing compilation with older GHC

v3.3.2 October 2018
-------------------

 * Fix: GHC-8.6 compilation fix (no upper bound on base)
 * Fix: upper bound on containers (pull request phadej)
 * Fix: palette validation for gifs (pull request omedan)
 * New: More complete gif creation API (pull request omedan)

v3.3.1 August 2018
------------------

 * Fix: gif decoding of 1bit palette (fix Ornedan)
 * Fix: end of stream handling for gif's lzw encoding (fix Ornedan)

v3.3 July 2018
--------------

 * New: Eq instances for image
 * Fix: color gif resolution offset
 * New: support for Float Tiff
 * Breaking change: New `ImageY32` constructor for `Dynamic`
					hence the version bump.

v3.2.9.5 March 2018
-------------------
 
 * Fix: uniform color quantization

v3.2.9.4 January 2018
----------------------

 * Compat for GHC-8.4 (pull request)
 * Fix: a character in latin1 which was still around. Whatever.
        So tired of this.


v3.2.9.3 December 2017
----------------------

 * Fix: remove bad invisible unicde char

v3.2.9.2 December 2017
----------------------

 * Fix: Progressive jpeg decoding when number of blocks of the MCU
		is below line size

v3.2.9.1 November 2017
----------------------

 * Feature: Paletted alpha png saving

v3.2.9 November 2017
----------------------

 * Fix: Adding correct import of Exif Flash for Jpeg (thanks to Alexander Kjeldaas)
 * Feature: Jpg Exif writing


v3.2.8.3 August 2017
------------------

 * Fix: Jpeg loading of extended sequential jpg, not sure of all
		the implications, works with the sample

v3.2.8.2 June 2017
------------------

 * Fix: usage of fail in Either monad, giving an unwanted exception

v3.2.8.1 March 2016
-------------------

 * Fix: proper flushing of jpeg writing, avoiding warning from libjpeg.
 * Fix: RGB jpeg get an Adobe's APP14 block to help MacOS & Photoshop reading

v3.2.8 September 2016
---------------------

 * Added: possibility to retrieve the parsed palette.
 * Fix: Fixing problem of progressive Jpeg decoding when
		block height is different of block width (#)

v3.2.7.2 June 2016
------------------

 * Fix: no more libjpeg warning when decoding Juicy.Pixels encoded images.

v3.2.7.1 May 2016
-----------------
 * Fix: some wrongly infinitely looping JPEG decoding

v3.2.7 January 2016
-------------------
 * Addition: convertRGB8 and convertRGBA8 helper functions
 * Addition: new output colorspace for JPEG format: Y, RGB & CMYK
 * Addition: RGBA8 bitmap reading (thanks to mtolly)
 * Enhancement: Optimized JPG & Tiff reading (thanks to Calvin Beck)
 * Enhancement: INLINE SPECIALIZE for pixelMap (Pixel8 -> Pixel8) (thx to Calvin Beck)
 * Fix: GHC 8.0 compilation (thanks to phadej)

v3.2.6.5 December 2015
----------------------
 * Fix: Compilation on GHC 7.6/7.8

v3.2.6.4 December 2015
----------------------
 * Fix: previous broken bugfix.

v3.2.6.3 November 2015
----------------------
 * Fix: Fixing unwanted sharing with createMutableImage due to
		wrongly used INLINE pragma

v3.2.6.2 November 2015
----------------------
 * Fix: Using minimal GIF version if outputing a single image.

v3.2.6.1 August 2015
--------------------
 * Fix: handling of negative height & width in bitmap format.
 * Fix: regression on Tiff parsing.

V3.2.6 August 2015
--------------------

 * Added: imageToTga saving helper function.
 * Fix: don't invert TGA alpha channel.
 * Fix: various typo in documentation.

V3.2.5.3 July 2015
------------------

 * Fix: bumping vector upper bounds.

V3.2.5.2 June 2015
------------------

 * Adding: Width & Height metdata to help querying image information
	without decompressing the whole.
 * Adding: Source format metadata.

v3.2.5.1 May 2015
---------------

 * Fixing: utf-8 encoding of Jpg/Types causing problems with Haddock.

v3.2.5 May 2015
---------------

 * Adding: Metadata extraction for various file format.
 * Adding: Metadata writing for various file format.
 * Adding: light EXIF mapping.
 * Fix: handling of Tiff with predictors (thanks to Patrick Pelletier)
 
v3.2.4 April 2015
-----------------

 * Adding: Traversals compatible with the lens library.

v3.2.3.2 April 2015
-------------------

 * Bumping: zlib max bound

v3.2.3.1 March 2015
-------------------

 * Bumping: primitive to allow 0.6
 * Fix: BMP output generated wrong size (thanks to mtolly).
 * Fix: 7.10.1 warning free

v3.2.3 March 2015
-----------------

 * Adding: Support for RGB in jpeg (yeah, that exist...)
 * Adding: Support of CMYK & YCrCbK color space in jpeg files.
 * Addinng: a pixelFoldMap functions analog to the `foldMap` function
  of the Foldable type class.
 * Fix: better performances for the pixelFold* functions

v3.2.2 January 2015
-------------------

 * Fix: Squashing GHC 7.10 warnings

v3.2.1 December 2014
--------------------
 * Fix: Bumping deepseq dependencies preparing for GHC 7.10
   release.

v3.2 December 2014
------------------

*BREAKING CHANGES*: the Codec.Picture.Gif functions has changed interfaces.

 * Adding: TGA reading.
 * Adding: TGA writing.
 * Adding: Packeable pixel unpack.
 * Fix: Returning gif with transparency (breaking Codec.Picture.Gif interface)

v3.1.7.1 August 2014
--------------------

 * Previous gif fix was not working withing the readImage
   function, only in specialized gif images. Correcting
   miscorection

v3.1.7 August 2014
------------------

 * Making Juicy.Pixels compatible with GHC 7.9 HEAD (ggreif)
 * Adding writing to uncompressed radiance file, due to
   problems with Mac OS X "preview" application
 * Fixing problem of gif parsing without global palette
 * Some inlining annotations on some functions

v3.1.6.1 August 2014
--------------------

 * Fix of Gif palette creation (jeffreyrosenbluth)
 * Restoring transformers 0.3.* compat

v3.1.6 August 2014
------------------

 * Fix bad disposal handling in GIF animations.
 * Added ColorConvertible instance for PixelRGB8 -> PixelRGBA16 (KaiHa)
 * Fixing a bad handling of tRNS causing bad transprency decoding in
   some circonstances.
 * Adding the concept of Packeable pixel for faster pixel filling
   using mutable array.

v3.1.5.2 May 2014
-----------------

 * Bumping the transformers dependency

v3.1.5.1 May 2014
-----------------

 * Adding some INLINE annotations for some pixel functions

v3.1.5 March 2014
-----------------

 * Typos and documentation proof reading fixes
   (pull request from iger).
 * Fix of progressive jpeg loading with more than two
   huffman tables (4 allowed).
 * Fix of progressive jpeg rendering (was too noisy before)
 * Added loading of paletted bitmap files.
 * Function to load gif images with frame duration
   information (pull request from bit-shift)
 * Fixing bug showing when loading JPEG with component
   ID starting at 0.
 * Adding reading for YA8 et YA16 Tiff images (pull 
   request from iger)
 * Adding a mixWithAlpha method, to help work on transparent
   pixel types


v3.1.4.1 February 2014
----------------------

 * Putting back data URI logo for cabal description, it's
   apparently not supported by Hackage :-(

v3.1.4 February 2014
--------------------

 * Adding a pixelOpacity method to the pixel type class.
 * Adding handling greyscale BMP files (phischu)
 * Fixing promotePixel for Pixel8 -> Pixel16
 * Some type fixes in the documentation
 * Updating the pixel conversion graph
 * Removed URI-encoded images, now using clean cabal embedding

v3.1.3.3 February 2014
----------------------

 * Lowering cabal version limit to be compiled with older GHCs

v3.1.3.2 January 2014
---------------------

 * Hacking around Binary to accept old version of it, down to version 0.5
   allowing Juicy.Pixels to be compiled with GHC 6.3

v3.1.3.1 January 2014
---------------------

 * Fixing color counting function in color quantisation.
 * Adding missing documentation for foreign pointer import.

v3.1.3 January 2014
-------------------

 * Adding palette creation (color Quantization) by Jeffrey Rosenbluth.
 * Adding support for Gif writing
 * Adding support for Gif animation writing
 * Fixing some progressive Jpeg decoding problems (#39)

v3.1.2 December 2013
--------------------

 * Adding support for progressive jpeg.
 * Adding support for plane separated MCU jpeg.
 * Adding support for grayscale 32bit decoding (with reduced precision to
	16bits).
 * Fixing erroneous bitmap decoding in case of excessive padding (#31).

v3.1.1.1 October 2013
---------------------

 * Fixing some spurious crash while decoding some JPEG image (#30).

v3.1.1  October 2013
--------------------

 * Adding uncompresed TIFF saving.
 * Adding error message to avoid loading progressive loading.
 * Made MMAP optional, controled by a cabal flag.
 * adding dynamicPixelMap helper function.
 * Handling png transparency using color key (#26).

v3.1 June 2013
--------------

 * Adding basic handling of 16bits pixel types.
 * Addition of Tiff reading:
    - 2, 4, 8, 16 bit depth reading (planar and contiguous for each).
    - CMYK, YCbCr, RGB, Paletted, Greyscale.
    - Uncompressed, PackBits, LZW.
 * Some new tiny helper functions (nothing too fancy).
 * Huge performances improvement.

v3.0 January 2013
-----------------

 * Simplification of the 'Pixel' typeclass, removed many unused part.
 * Removal of some Storable instances for pixel types.
 * Amelioration of the documentation.
 * Support for High Dynamic range images, opening support for different pixel
   base component.
 * Support for the Radiance file format (or RGBE, file extension .pic and .hdr).
 * Dropped the cereal library in favor of the last version of Binary, present 
   in the Haskell platform. Every dependencies are now present in the platform.

v2.0.2 October 2012
-------------------

 * Decoding of interleaved gif image.
 * Decoding delta coded gif animation.
 * Bumping dependencies.

v2.0.1 September 2012
---------------------

 * Documentation enhancements.
 * Fixing some huge gif file loading.
 * Fixing performance problem of Bitmap and Jpeg savings.

v2.0 September 2012
-------------------

 * New extractComponent version with type safe plane extraction.
 * Gif file reading.

v1.3 June 2012
--------------

 * Fix extractComponent function.
 * Adding saving for YA8 functions.

v1.2.1 April 2012
-----------------

 * Dependencies version bump.
 * Dropping array dependency.

v1.2 March 2012
---------------

 * Adding a generateImage helper function.
 * Adding NFData instances for image.
 * Adding JPEG writing.

v1.1 February 2012
------------------

 * Switching to vector for arrays, big performance improvement.

v1.0 January 2012
-----------------

 * Initial release

