
Libpng 1.5.1 - February 3, 2011

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.5.1.tar.xz (LZMA-compressed, recommended)
   libpng-1.5.1.tar.gz
   libpng-1.5.1.tar.bz2

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

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

Other information:

   libpng-1.5.1-README.txt
   libpng-1.5.1-LICENSE.txt

Changes since the last public release (1.5.0):

  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().  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, if libpng
    internally happens to call it with one.
  Fixed the failure to handle palette mapped images correctly.
  Fixed a bug in handling of interlaced images (bero at arklinux.org).
  Updated CMakeLists.txt (Clifford Yapp)
  Fixed typecasting of some png_debug() statements (Cosmin)
  Updated documentation of png_set|get_tRNS() (Thomas Klausner).
  Mentioned in the documentation that applications must #include "zlib.h"
    if they need access to anything in zlib.h, and that a number of
    macros such as png_memset() are no longer accessible by applications.
  Corrected pngvalid gamma test "sample" function to access all of the color
    samples of each pixel, instead of sampling the red channel three times.
  Changed variable names index, div, exp, and gamma to char_index, divisor,
    exp_b10, and gamma_val, respectively, to avoid "shadow" warnings.
  Prevent png_push_crc_skip() from hanging while reading an unknown chunk
    or an over-large compressed zTXt chunk with the progressive reader.
  Eliminated more GCC "shadow" warnings.
  Revised png_fixed() in png.c to avoid compiler warning about reaching the
    end without returning anything.
  In the manual, describe the png_get_IHDR() arguments in the correct order.
  Added const_png_structp and const_png_infop types, and used them in
    prototypes for most png_get_*() functions.
  Added png_get_io_chunk_type() and deprecated png_get_io_chunk_name()
  Added synopses for the IO_STATE functions and other missing synopses
    to the manual. Removed the synopses from libpngpf.3 because they
    were out of date and no longer useful.  Better information can be
    obtained by reading the prototypes and comments in pngpriv.h
  Attempted to fix cpp on Solaris with S. Studio 12 cc, fix build
    Added a make macro DFNCPP that is a CPP that will accept the tokens in
    a .dfn file and adds configure stuff to test for such a CPP.  ./configure
    should fail if one is not available.
  Corrected const_png_ in png.h to png_const_ to avoid polluting the namespace.
  Added png_get_current_row_number and png_get_current_pass_number for the
    benefit of the user transform callback.
  Added png_process_data_pause and png_process_data_skip for the benefit of
    progressive readers that need to stop data processing or want to optimize
    skipping of unread data (e.g. if the reader marks a chunk to be skipped.)
  Enhanced pngvalid, corrected an error in gray_to_rgb, corrected doc error.
    pngvalid contains tests of transforms, which tests are currently disabled
    because they are incompletely tested.  gray_to_rgb was failing to expand
    the bit depth for smaller bit depth images; this seems to be a long
    standing error and resulted, apparently, in invalid output.  The
    documentation did not accurately describe what libpng really does when
    converting RGB to gray.
  Fixed incorrect examples of callback prototypes in the manual, that were
    introduced in libpng-1.0.0.
  In addition the order of the png_get_uint macros with respect to the
    relevant function definitions has been reversed.  This helps the
    preprocessing of the symbol files be more robust.  Furthermore, the
    symbol file preprocessing now uses -DPNG_NO_USE_READ_MACROS even when
    the library may actually be built with PNG_USE_READ_MACROS; this stops
    the read macros interfering with the symbol file format.
  Made the manual, synopses, and function prototypes use the function
    argument names file_gamma, int_file_gamma, and srgb_intent consistently.
  Changed PNG_UNUSED from "param=param;" to "(void)param;".
  Added transform tests to pngvalid and simplified the arguments.
  Added a request in the manual that applications do not use "png_" or
    "PNG_" to begin any of their own symbols.

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
