summaryrefslogtreecommitdiff
path: root/pngread.c
diff options
context:
space:
mode:
authorGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2009-10-29 23:47:05 -0500
committerGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2009-10-29 23:47:05 -0500
commit4b14b35208b3777ec138377bc347d48f7d7cb5d6 (patch)
tree24bb170cd5a4765c2327a7162e8af9bfbe641c77 /pngread.c
parentbc2ab12f99f4def34b8b510870c54bccb652b08d (diff)
downloadlibpng-4b14b35208b3777ec138377bc347d48f7d7cb5d6.tar.gz
[master] Ported functions from libpng-1.4.0rc01:
png_calloc(), png_get_io_state(), png_get_io_chunk_name(), png_set_premultiply_alpha, and png_do_read_premultiply_alpha().
Diffstat (limited to 'pngread.c')
-rw-r--r--pngread.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/pngread.c b/pngread.c
index 81d3703c5..5526cbe95 100644
--- a/pngread.c
+++ b/pngread.c
@@ -349,6 +349,10 @@ png_read_info(png_structp png_ptr, png_infop info_ptr)
png_size_t num_checked = png_ptr->sig_bytes,
num_to_check = 8 - num_checked;
+#ifdef PNG_IO_STATE_SUPPORTED
+ png_ptr->io_state = PNG_IO_READING | PNG_IO_SIGNATURE;
+#endif
+
png_read_data(png_ptr, &(info_ptr->signature[num_checked]), num_to_check);
png_ptr->sig_bytes = 8;
@@ -1448,6 +1452,22 @@ png_read_png(png_structp png_ptr, png_infop info_ptr,
png_set_swap(png_ptr);
#endif
+/* Added at libpng-1.2.41 */
+#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED
+ /* Invert the alpha channel from opacity to transparency
+ */
+ if (transforms & PNG_TRANSFORM_INVERT_ALPHA)
+ png_set_invert_alpha(png_ptr);
+#endif
+
+/* Added at libpng-1.2.41 */
+#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
+ /* Expand grayscale image to RGB
+ */
+ if (transforms & PNG_TRANSFORM_GRAY_TO_RGB)
+ png_set_gray_to_rgb(png_ptr);
+#endif
+
/* We don't handle adding filler bytes */
/* Optional call to gamma correct and add the background to the palette