
Libpng 1.0.45 - June 4, 2009

This is a public release of libpng, intended for use in production codes.

Files available for download:

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

   libpng-1.0.45.tar.gz
   libpng-1.0.45.tar.lzma
     (Get the lzma codec from <http://tukaani.org/lzma>).
   libpng-1.0.45.tar.bz2

Source files with LF line endings (for Unix/Linux) without the
"configure" script

   libpng-1.0.45-no-config.tar.gz
   libpng-1.0.45-no-config.tar.lzma
   libpng-1.0.45-no-config.tar.bz2

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

   lpng1045.zip
   lpng1045.7z
   lpng1045.tar.bz2

Project files

   libpng-1.0.45-project-netware.zip
   libpng-1.0.45-project-wince.zip

Other information:

   libpng-1.0.45-README.txt
   libpng-1.0.45-KNOWNBUGS.txt
   libpng-1.0.45-LICENSE.txt
   libpng-1.0.45-Y2K-compliance.txt

Changes since the last public release (1.0.44):

version 1.0.45 [June 4, 2009]

  Fixed inconsistency in pngrutil.c, introduced in libpng-1.2.36.  The
    memset() was using "png_ptr->rowbytes" instead of "row_bytes", which
    the corresponding png_malloc() uses (Joe Drew).
  Clarified usage of sig_bit versus sig_bit_p in example.c (Vincent Torri)
  Updated some of the makefiles in the scripts directory.
  Fixed typo in libpng documentation (FILTER_AVE should be FILTER_AVG)
  Relocated misplaced #endif in pngwrite.c, sCAL chunk handler.
  Conditionally compile png_read_finish_row() which is not used by
    progressive readers.
  Added contrib/pngminim/preader to demonstrate building minimal progressive
    decoder, based on contrib/gregbook with embedded libpng and zlib.
  In contrib/pngminim/*, renamed "makefile.std" to "makefile", since there
    is only one makefile in those directories, and revised the README files
    accordingly.
  Reformated sources in libpng style (3-space indentation, comment format)
  Added sections about the git repository and our coding style to the
    documentation (merged from libpng-1.4.0beta62)
  Added a section about using png_get_io_ptr() in configure scripts to detect
    the presence of libpng.

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
