
Libpng 1.5.1beta03 - January 15, 2011

This is not intended to be a public release.  It will be replaced
within a few weeks by a public version or by another test version.

Files available for download:

Source files with LF line endings (for Unix/Linux) and with a
"configure" script

   1.5.1beta03.tar.xz (LZMA-compressed, recommended)
   1.5.1beta03.tar.gz
   1.5.1beta03.tar.bz2

Source files with CRLF line endings (for Windows), without the
"configure" script

   lp151b03.7z  (LZMA-compressed, recommended)
   lp151b03.zip

Other information:

   1.5.1beta03-README.txt
   1.5.1beta03-LICENSE.txt

Changes since the last public release (1.5.0):

version 1.5.1beta01 [January 8, 2011]
  Added description of png_set_crc_action() to the manual.
  Added a note in the manual that the type of the iCCP profile was changed
    from png_charpp to png_bytepp in png_get_iCCP().  This change happened
    in version 1.5.0beta36 but is not noted in the CHANGES.  Similarly,
    it was changed from png_charpp to png_const_bytepp in png_set_iCCP().
  Ensure that png_rgb_to_gray ignores palette mapped images,
  Fixed the failure to handle palette mapped images correctly.

Version 1.5.1beta02 [January 14, 2011]
  Fixed a bug in handling of interlaced images (bero at arklinux.org).
  Updated CMakeLists.txt (Clifford Yapp)

Version 1.5.1beta03 [January 15, 2011]
  Fixed typecasting of some png_debug() statements (Cosmin)

Send comments/corrections/commendations to png-mng-implement at lists.sf.net:
(subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
to subscribe) or to glennrp at users.sourceforge.net

Glenn R-P
