850769f787
to demonstrate chop_16_to_8
229 lines
11 KiB
Plaintext
229 lines
11 KiB
Plaintext
|
|
Libpng 1.5.4beta04 - June 16, 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.4beta04.tar.xz (LZMA-compressed, recommended)
|
|
1.5.4beta04.tar.gz
|
|
1.5.4beta04.tar.bz2
|
|
|
|
Source files with CRLF line endings (for Windows), without the
|
|
"configure" script
|
|
|
|
lp154b04.7z (LZMA-compressed, recommended)
|
|
lp154b04.zip
|
|
|
|
Other information:
|
|
|
|
1.5.4beta04-README.txt
|
|
1.5.4beta04-LICENSE.txt
|
|
|
|
Changes since the last public release (1.5.2):
|
|
|
|
Version 1.5.3beta01 [April 1, 2011]
|
|
Re-initialize the zlib compressor before compressing non-IDAT chunks.
|
|
Added API functions to set parameters for zlib compression of non-IDAT
|
|
chunks.
|
|
|
|
Version 1.5.3beta02 [April 3, 2011]
|
|
Updated scripts/symbols.def with new API functions.
|
|
Only compile the new zlib re-initializing code when text or iCCP is
|
|
supported, using PNG_WRITE_COMPRESSED_TEXT_SUPPORTED macro.
|
|
Improved the optimization of the zlib CMF byte (see libpng-1.2.6beta03).
|
|
Optimize the zlib CMF byte in non-IDAT compressed chunks
|
|
|
|
Version 1.5.3beta03 [April 16, 2011]
|
|
Fixed gcc -ansi -pedantic compile. A strict ANSI system does not have
|
|
snprintf, and the "__STRICT_ANSI__" detects that condition more reliably
|
|
than __STDC__ (John Bowler).
|
|
Removed the PNG_PTR_NORETURN attribute because it too dangerous. It tells
|
|
the compiler that a user supplied callback (the error handler) does not
|
|
return, yet there is no guarantee in practice that the application code
|
|
will correctly implement the error handler because the compiler only
|
|
issues a warning if there is a mistake (John Bowler).
|
|
Removed the no-longer-used PNG_DEPSTRUCT macro.
|
|
Updated the zlib version to 1.2.5 in the VStudio project.
|
|
Fixed 64-bit builds where png_uint_32 is smaller than png_size_t in
|
|
pngwutil.c (John Bowler).
|
|
Fixed bug with stripping the filler or alpha channel when writing, that
|
|
was introduced in libpng-1.5.2beta01 (bug report by Andrew Church).
|
|
|
|
Version 1.5.3beta04 [April 27, 2011]
|
|
Updated pngtest.png with the new zlib CMF optimization.
|
|
Cleaned up conditional compilation code and of background/gamma handling
|
|
Internal changes only except a new option to avoid compiling the
|
|
png_build_grayscale_palette API (which is not used at all internally.)
|
|
The main change is to move the transform tests (READ_TRANSFORMS,
|
|
WRITE_TRANSFORMS) up one level to the caller of the APIs. This avoids
|
|
calls to spurious functions if all transforms are disabled and slightly
|
|
simplifies those functions. Pngvalid modified to handle this.
|
|
A minor change is to stop the strip_16 and expand_16 interfaces from
|
|
disabling each other; this allows the future alpha premultiplication
|
|
code to use 16-bit intermediate values while still producing 8-bit output.
|
|
png_do_background and png_do_gamma have been simplified to take a single
|
|
pointer to the png_struct rather than pointers to every item required
|
|
from the png_struct. This makes no practical difference to the internal
|
|
code.
|
|
A serious bug in the pngvalid internal routine 'standard_display_init' has
|
|
been fixed - this failed to initialize the red channel and accidentally
|
|
initialized the alpha channel twice.
|
|
Changed png_struct jmp_buf member name from png_jmpbuf to tmp_jmpbuf to
|
|
avoid a clash with the png_jmpbuf macro on some platforms.
|
|
|
|
Version 1.5.3beta05 [May 6, 2011]
|
|
Added appropriate feature test macros to ensure libpng sees the correct API
|
|
_POSIX_SOURCE is defined in pngpriv.h, pngtest.c and pngvalid.c to ensure
|
|
that POSIX conformant systems disable non-POSIX APIs. _ISOC99_SOURCE is
|
|
defined in pngpriv.h to obtain the ISO C99 snprintf definition, when
|
|
available.
|
|
Removed png_snprintf and added formatted warning messages. This change adds
|
|
internal APIs to allow png_warning messages to have parameters without
|
|
requiring the host OS to implement snprintf. As a side effect the
|
|
dependency of the tIME-supporting RFC1132 code on stdio is removed and
|
|
PNG_NO_WARNINGS does actually work now.
|
|
Added PNG_WRITE_OPTIMIZE_CMF_SUPPORTED macro to make the zlib "CMF" byte
|
|
optimization configureable.
|
|
IDAT compression failed if preceded by a compressed text chunk (bug
|
|
introduced in libpng-1.5.3beta01-02). This was because the attempt to
|
|
reset the zlib stream in png_write_IDAT happened after the first IDAT
|
|
chunk had been deflated - much too late. In this change internal
|
|
functions were added to claim/release the z_stream and, hopefully, make
|
|
the code more robust. Also deflateEnd checking is added - previously
|
|
libpng would ignore an error at the end of the stream.
|
|
|
|
Version 1.5.3beta06 [May 8, 2011]
|
|
Removed the -D_ALL_SOURCE from definitions for AIX in CMakeLists.txt
|
|
Implemented premultiplied alpha support: png_set_alpha_mode API
|
|
|
|
Version 1.5.3beta07 [May 11, 2011]
|
|
Added expand_16 support to the high level interface.
|
|
Added named value and 'flag' gamma support to png_set_gamma. Made a minor
|
|
change from the previous (unreleased) ABI/API to hide the exact value used
|
|
for Macs - it's not a good idea to embed this in the ABI!
|
|
Moved macro definitions for PNG_HAVE_IHDR, PNG_HAVE_PLTE, and PNG_AFTER_IDAT
|
|
from pngpriv.h to png.h because they must be visible to applications
|
|
that call png_set_unknown_chunks().
|
|
Check for up->location !PNG_AFTER_IDAT when writing unknown chunks
|
|
before IDAT.
|
|
|
|
Version 1.5.3beta08 [May 16, 2011]
|
|
Improved "pngvalid --speed" to exclude more of pngvalid from the time.
|
|
Documented png_set_alpha_mode(), other changes in libpng.3/libpng-manual.txt
|
|
The cHRM chunk now sets the defaults for png_set_rgb_to_gray() (when negative
|
|
parameters are supplied by the caller), while in the absence of cHRM
|
|
sRGB/Rec 709 values are still used.
|
|
The bKGD chunk no longer overwrites the background value set by
|
|
png_set_background(), allowing the latter to be used before the file
|
|
header is read. It never performed any useful function to override
|
|
the default anyway.
|
|
Added memory overwrite and palette image checks to pngvalid.c
|
|
Previously palette image code was poorly checked. Since the transformation
|
|
code has a special palette path in most cases this was a severe weakness.
|
|
Minor cleanup and some extra checking in pngrutil.c and pngrtran.c. When
|
|
expanding an indexed image, always expand to RGBA if transparency is
|
|
present.
|
|
|
|
Version 1.5.3beta09 [May 17, 2011]
|
|
Reversed earlier 1.5.3 change of transformation order; move png_expand_16 back.
|
|
The change doesn't work because it requires 16-bit gamma tables when the code
|
|
only generates 8-bit ones. This fails silently; the libpng code just doesn't
|
|
do any gamma correction. Moving the tests back leaves the old, inaccurate,
|
|
8-bit gamma calculations, but these are clearly better than none!
|
|
|
|
Version 1.5.3beta10 [May 20, 2011]
|
|
png_set_background() and png_expand_16() did not work together correctly.
|
|
This problem is present in 1.5.2; if png_set_background is called with
|
|
need_expand false and the matching 16 bit color libpng erroneously just
|
|
treats it as an 8-bit color because of where png_do_expand_16 is in the
|
|
transform list. This simple fix reduces the supplied colour to 8-bits,
|
|
so it gets smashed, but this is better than the current behavior.
|
|
Added tests for expand16, more fixes for palette image tests to pngvalid.
|
|
Corrects the code for palette image tests and disables attempts to
|
|
validate palette colors.
|
|
|
|
Version 1.5.3rc01 [June 3, 2011]
|
|
No changes.
|
|
|
|
Version 1.5.3rc02 [June 8, 2011]
|
|
Fixed uninitialized memory read in png_format_buffer() (Bug report by
|
|
Frank Busse, related to CVE-2004-0421).
|
|
|
|
Version 1.5.3beta11 [June 11, 2011]
|
|
Fixed png_handle_sCAL which is broken in 1.5; added sCAL to pngtest.png
|
|
Revised documentation about png_set_user_limits() to say that it also affects
|
|
png writing.
|
|
Revised handling of png_set_user_limits() so that it can increase the
|
|
limit beyond the PNG_USER_WIDTH|HEIGHT_MAX; previously it could only
|
|
reduce it.
|
|
Make the 16-to-8 scaling accurate. Dividing by 256 with no rounding is
|
|
wrong (high by one) 25% of the time. Dividing by 257 with rounding is
|
|
wrong in 128 out of 65536 cases. Getting the right answer all the time
|
|
without division is easy.
|
|
Added "_SUPPORTED" to the PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION macro.
|
|
Added projects/owatcom, an IDE project for OpenWatcom to replace
|
|
scripts/makefile.watcom. This project works with OpenWatcom 1.9. The
|
|
IDE autogenerates appropriate makefiles (libpng.mk) for batch processing.
|
|
The project is configurable, unlike the Visual Studio project, so long
|
|
as the developer has an awk.
|
|
Changed png_set_gAMA to limit the gamma value range so that the inverse
|
|
of the stored value cannot overflow the fixed point representation,
|
|
and changed other things OpenWatcom warns about.
|
|
Revised pngvalid.c to test PNG_ALPHA_MODE_SUPPORTED correctly. This allows
|
|
pngvalid to build when ALPHA_MODE is not supported, which is required if
|
|
it is to build on libpng 1.4.
|
|
Removed string/memory macros that are no longer used and are not
|
|
necessarily fully supportable, particularly png_strncpy and png_snprintf.
|
|
Added log option to pngvalid.c and attempted to improve gamma messages.
|
|
|
|
Version 1.5.3 [omitted]
|
|
People found the presence of a beta release following an rc release
|
|
to be confusing; therefore we bump the version to libpng-1.5.4beta01
|
|
and there will be no libpng-1.5.3 release.
|
|
|
|
Version 1.5.4beta01 [June 14, 2011]
|
|
Made it possible to undefine PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
|
|
to get the same (inaccurate) output as libpng-1.5.2 and earlier.
|
|
Moved definitions of PNG_HAVE_IHDR, PNG_AFTER_IDAT, and PNG_HAVE_PLTE
|
|
outside of an unknown-chunk block in png.h because they are also
|
|
needed for other uses.
|
|
|
|
Version 1.5.4beta02 [June 14, 2011]
|
|
Fixed and clarified LEGACY 16-to-8 scaling code.
|
|
Added png_set_chop_16() API, to match inaccurate results from previous
|
|
libpng versions.
|
|
Removed the ACCURATE and LEGACY options (they are no longer useable)
|
|
Use the old scaling method for background if png_set_chop_16() was
|
|
called.
|
|
Made png_set_chop_16() API removeable with PNG_NO_READ_CHOP_16_TO_8_SUPPORTED
|
|
|
|
Version 1.5.4beta03 [June 15, 2011]
|
|
Fixed a problem in png_do_expand_palette() exposed by optimization in
|
|
1.5.3beta06
|
|
Also removed a spurious and confusing "trans" member ("trans") from png_info.
|
|
The palette expand optimization prevented expansion to an intermediate RGBA
|
|
form if tRNS was present but alpha was marked to be stripped; this exposed
|
|
a check for tRNS in png_do_expand_palette() which is inconsistent with the
|
|
code elsewhere in libpng.
|
|
Correction to the expand_16 code; removed extra instance of
|
|
png_set_scale_16_to_8 from pngpriv.h
|
|
|
|
Version 1.5.4beta04 [June 16, 2011]
|
|
Added a missing "#ifdef PNG_READ_BACKGROUND_SUPPORTED/#endif" in pngrtran.c
|
|
Added PNG_TRANSFORM_CHOP_16 to the high-level read transforms.
|
|
Made PNG_READ_16_TO_8_ACCURATE_SCALE configurable again. If this is
|
|
not enabled, png_set_strip_16() and png_do_scale_16_to_8() aren't built.
|
|
Revised contrib/visupng, gregbook, and pngminim to demonstrate chop_16_to_8
|
|
|
|
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
|