1 Libpng 1.5.6 - November 3, 2011
3 This is a public release of libpng, intended for use in production codes.
5 Files available for download:
7 Source files with LF line endings (for Unix/Linux) and with a
10 libpng-1.5.6.tar.xz (LZMA-compressed, recommended)
14 Source files with CRLF line endings (for Windows), without the
17 lpng156.7z (LZMA-compressed, recommended)
22 libpng-1.5.6-README.txt
23 libpng-1.5.6-LICENSE.txt
25 Changes since the last public release (1.5.5):
27 Fixed some 64-bit type conversion warnings in pngrtran.c
28 Moved row_info from png_struct to a local variable.
29 The various interlace mask arrays have been made into arrays of
30 bytes and made PNG_CONST and static (previously some arrays were
31 marked PNG_CONST and some weren't).
32 Additional checks have been added to the transform code to validate the
33 pixel depths after the transforms on both read and write.
34 Removed some redundant code from pngwrite.c, in png_desgtroy_write_struct().
35 Changed chunk reading/writing code to use png_uint_32 instead of png_byte[4].
36 This removes the need to allocate temporary strings for chunk names on
37 the stack in the read/write code. Unknown chunk handling still uses the
38 string form because this is exposed in the API.
39 Added a note in the manual the png_read_update_info() must be called only
40 once with a particular info_ptr.
41 Revised test-pngtest.sh to report FAIL when pngtest fails.
42 Added "--strict" option to pngtest, to report FAIL when the failure is
43 only because the resulting valid files are different.
44 Revised CMakeLists.txt to work with mingw and removed some material from
45 CMakeLists.txt that is no longer useful in libpng-1.5.
46 Fixed typo in Makefile.in and Makefile.am ("-M Wl" should be "-M -Wl")."
47 Speed up png_combine_row() for interlaced images. This reduces the generality
48 of the code, allowing it to be optimized for Adam7 interlace. The masks
49 passed to png_combine_row() are now generated internally, avoiding
50 some code duplication and localizing the interlace handling somewhat.
51 Align png_struct::row_buf - previously it was always unaligned, caused by
52 a bug in the code that attempted to align it; the code needs to subtract
53 one from the pointer to take account of the filter byte prepended to
55 Optimized png_combine_row() when rows are aligned. This gains a small
56 percentage for 16-bit and 32-bit pixels in the typical case where the
57 output row buffers are appropriately aligned. The optimization was not
58 previously possible because the png_struct buffer was always misaligned.
59 Removed two redundant tests for unitialized row.
60 Fixed a relatively harmless memory overwrite in compressed text writing
61 with a 1 byte zlib buffer.
62 Add ability to call png_read_update_info multiple times to pngvalid.c
63 Fixes for multiple calls to png_read_update_info. These fixes attend to
64 most of the errors revealed in pngvalid, however doing the gamma work
65 twice results in inaccuracies that can't be easily fixed. There is now
66 a warning in the code if this is going to happen.
67 Turned on multiple png_read_update_info in pngvalid transform tests.
68 Prevent libpng from overwriting unused bits at the end of the image when
69 it is not byte aligned, while reading. Prior to libpng-1.5.6 libpng would
70 overwrite the partial byte at the end of each row if the row width was not
71 an exact multiple of 8 bits and the image is not interlaced.
72 Made png_ptr->prev_row an aligned pointer into png_ptr->big_prev_row
74 Changed misleading "Missing PLTE before cHRM" warning to "Out of place cHRM"
75 Added PNG_LSR() and PNG_LSL() macros to defend against buggy compilers that
76 evaluate non-taken code branches and complain about out-of-range shifts.
77 Renamed the local variable 'byte' because it appears in a MSYS header
79 Added #define PNG_ALIGN_TYPE PNG_ALIGN_NONE to contrib/pngminim/*/pngusr.h
81 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
82 (subscription required; visit
83 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
85 or to glennrp at users.sourceforge.net