John Bowler 84a8bb8244 Make png_struct palette, trans_alpha private
This removes the side-effect on the png_struct palette of calling png_set_PLTE
or png_set_tRNS.  NOTE: this is a quiet API change, it was possible before to
alter the palette on a PNG image by using png_set_PLTE, but this was unintended
and inconsistent with the other png_set APIs.

Fix a bug in palette index checking; png_struct::num_palette could, in
principle, get changed by the transformations (e.g. png_set_quantize) and this
would invalidate the check.  The palette checking init function now makes a copy
of png_struct::num_palette.

Fix a bug in pngvalid error handling.  A png_error in png_write_info is not
continuable (a valid image cannot necessarily be written afterward) because the
png_error aborts the write of subsequent pre-IDAT chunks.  In particular an
abort as a result of a bogus colorspace information (gAMA, cHRM, sBIT etc)
prevents the write of the PLTE chunk.

Signed-off-by: John Bowler <jbowler@acm.org>
2015-12-01 08:16:53 -08:00
..
2015-11-26 09:55:37 -08:00
2015-11-26 09:55:37 -08:00
2015-11-26 09:55:37 -08:00
2015-11-26 09:55:37 -08:00
2015-11-26 09:55:37 -08:00
2015-09-14 17:57:40 -07:00
2015-09-14 17:31:51 -07:00
2015-09-14 17:31:51 -07:00

This "contrib" directory contains contributions which are not necessarily under
the libpng license, although all are open source.  They are not part of
libpng proper and are not used for building the library, although some are used
for testing the library via "make check".