mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
[devel] Fixed buffer bug (both the strip_16 and scale_16 transforms were
being applied.
This commit is contained in:
22
pngread.c
22
pngread.c
@@ -1286,24 +1286,26 @@ png_read_png(png_structp png_ptr, png_infop info_ptr,
|
||||
|
||||
/* -------------- image transformations start here ------------------- */
|
||||
|
||||
#ifdef PNG_READ_16_TO_8_SUPPORTED
|
||||
#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
|
||||
/* Tell libpng to strip 16-bit/color files down to 8 bits per color.
|
||||
*/
|
||||
# ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
|
||||
if (transforms & PNG_TRANSFORM_SCALE_16)
|
||||
png_set_scale_16(png_ptr);
|
||||
# ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
|
||||
else
|
||||
|
||||
# endif
|
||||
# endif
|
||||
# ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
|
||||
{
|
||||
/* Added at libpng-1.5.4. "strip_16" produces the same result that it
|
||||
* did in earlier versions, while "scale_16" is now more accurate.
|
||||
*/
|
||||
png_set_scale_16(png_ptr);
|
||||
}
|
||||
|
||||
# ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
|
||||
else
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
|
||||
if (transforms & PNG_TRANSFORM_STRIP_16)
|
||||
png_set_strip_16(png_ptr);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
|
||||
|
||||
Reference in New Issue
Block a user