-
-Libpng 1.2.20 - September 8, 2007
+Libpng 1.5.6 - November 3, 2011
This is a public release of libpng, intended for use in production codes.
Source files with LF line endings (for Unix/Linux) and with a
"configure" script
- libpng-1.2.20.tar.gz
- libpng-1.2.20.tar.bz2
-
-Source files with LF line endings (for Unix/Linux) without the
-"configure" script
-
- libpng-1.2.20-no-config.tar.gz
- libpng-1.2.20-no-config.tar.bz2
+ libpng-1.5.6.tar.xz (LZMA-compressed, recommended)
+ libpng-1.5.6.tar.gz
+ libpng-1.5.6.tar.bz2
Source files with CRLF line endings (for Windows), without the
"configure" script
- lpng1220.zip
- lpng1220.tar.bz2
-
-Project files
-
- libpng-1.2.20-project-netware.zip
- libpng-1.2.20-project-wince.zip
+ lpng156.7z (LZMA-compressed, recommended)
+ lpng156.zip
Other information:
- libpng-1.2.20-README.txt
- libpng-1.2.20-KNOWNBUGS.txt
- libpng-1.2.20-LICENSE.txt
- libpng-1.2.20-Y2K-compliance.txt
-
-Changes since the last public release (1.2.19):
-
-version 1.2.20 [September 8, 2007]
-
- Added PNG_NO_ERROR_TEXT feature, with demo in contrib/pngminim
- Removed define PNG_WARN_UNINITIALIZED_ROW 1 /* 0: warning; 1: error */
- because it caused some trouble.
- Revised scripts/CMakeLists.txt
- Remove a little more code in pngwutil.c when PNG_NO_WRITE_FILTER is selected.
- Added /D _CRT_SECURE_NO_WARNINGS to visual6c and visualc71 projects.
- Removed Intel contributions (MMX, Optimized C).
+ libpng-1.5.6-README.txt
+ libpng-1.5.6-LICENSE.txt
+
+Changes since the last public release (1.5.5):
+
+ Fixed some 64-bit type conversion warnings in pngrtran.c
+ Moved row_info from png_struct to a local variable.
+ The various interlace mask arrays have been made into arrays of
+ bytes and made PNG_CONST and static (previously some arrays were
+ marked PNG_CONST and some weren't).
+ Additional checks have been added to the transform code to validate the
+ pixel depths after the transforms on both read and write.
+ Removed some redundant code from pngwrite.c, in png_desgtroy_write_struct().
+ Changed chunk reading/writing code to use png_uint_32 instead of png_byte[4].
+ This removes the need to allocate temporary strings for chunk names on
+ the stack in the read/write code. Unknown chunk handling still uses the
+ string form because this is exposed in the API.
+ Added a note in the manual the png_read_update_info() must be called only
+ once with a particular info_ptr.
+ Revised test-pngtest.sh to report FAIL when pngtest fails.
+ Added "--strict" option to pngtest, to report FAIL when the failure is
+ only because the resulting valid files are different.
+ Revised CMakeLists.txt to work with mingw and removed some material from
+ CMakeLists.txt that is no longer useful in libpng-1.5.
+ Fixed typo in Makefile.in and Makefile.am ("-M Wl" should be "-M -Wl")."
+ Speed up png_combine_row() for interlaced images. This reduces the generality
+ of the code, allowing it to be optimized for Adam7 interlace. The masks
+ passed to png_combine_row() are now generated internally, avoiding
+ some code duplication and localizing the interlace handling somewhat.
+ Align png_struct::row_buf - previously it was always unaligned, caused by
+ a bug in the code that attempted to align it; the code needs to subtract
+ one from the pointer to take account of the filter byte prepended to
+ each row.
+ Optimized png_combine_row() when rows are aligned. This gains a small
+ percentage for 16-bit and 32-bit pixels in the typical case where the
+ output row buffers are appropriately aligned. The optimization was not
+ previously possible because the png_struct buffer was always misaligned.
+ Removed two redundant tests for unitialized row.
+ Fixed a relatively harmless memory overwrite in compressed text writing
+ with a 1 byte zlib buffer.
+ Add ability to call png_read_update_info multiple times to pngvalid.c
+ Fixes for multiple calls to png_read_update_info. These fixes attend to
+ most of the errors revealed in pngvalid, however doing the gamma work
+ twice results in inaccuracies that can't be easily fixed. There is now
+ a warning in the code if this is going to happen.
+ Turned on multiple png_read_update_info in pngvalid transform tests.
+ Prevent libpng from overwriting unused bits at the end of the image when
+ it is not byte aligned, while reading. Prior to libpng-1.5.6 libpng would
+ overwrite the partial byte at the end of each row if the row width was not
+ an exact multiple of 8 bits and the image is not interlaced.
+ Made png_ptr->prev_row an aligned pointer into png_ptr->big_prev_row
+ (Mans Rullgard).
+ Changed misleading "Missing PLTE before cHRM" warning to "Out of place cHRM"
+ Added PNG_LSR() and PNG_LSL() macros to defend against buggy compilers that
+ evaluate non-taken code branches and complain about out-of-range shifts.
+ Renamed the local variable 'byte' because it appears in a MSYS header
+ file.
+ Added #define PNG_ALIGN_TYPE PNG_ALIGN_NONE to contrib/pngminim/*/pngusr.h
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
-(subscription required; visit
+(subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
-to subscribe) or to glennrp at users.sourceforge.net
+to subscribe)
+or to glennrp at users.sourceforge.net
Glenn R-P