From a085ae5ef139fca7910f70994c65f7a48769dfe1 Mon Sep 17 00:00:00 2001 From: notaz Date: Thu, 13 Sep 2012 02:30:04 +0300 Subject: [PATCH] merge Themaister's libpng 1.5 fix with width/height de-confusion --- readpng.c | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/readpng.c b/readpng.c index a697deb..af6bd56 100644 --- a/readpng.c +++ b/readpng.c @@ -61,7 +61,8 @@ int readpng(void *dest, const char *fname, readpng_what what, int req_w, int req goto done; } - // lprintf("%s: %ix%i @ %ibpp\n", fname, (int)info_ptr->width, (int)info_ptr->height, info_ptr->pixel_depth); + // lprintf("%s: %ix%i @ %ibpp\n", fname, (int)png_get_image_width(png_ptr, info_ptr), + // (int)png_get_image_height(png_ptr, info_ptr), png_get_bit_depth(png_ptr, info_ptr)); switch (what) { @@ -69,17 +70,17 @@ int readpng(void *dest, const char *fname, readpng_what what, int req_w, int req { int height, width, h; unsigned short *dst = dest; - if (info_ptr->pixel_depth != 24) + if (png_get_bit_depth(png_ptr, info_ptr) != 8) { - lprintf(__FILE__ ": bg image uses %ibpp, needed 24bpp\n", info_ptr->pixel_depth); + lprintf(__FILE__ ": bg image uses %ibpc, needed 8bpc\n", png_get_bit_depth(png_ptr, info_ptr)); break; } - height = info_ptr->height; - if (height > req_h) - height = req_h; - width = info_ptr->width; + width = png_get_image_width(png_ptr, info_ptr); if (width > req_w) width = req_w; + height = png_get_image_height(png_ptr, info_ptr); + if (height > req_h) + height = req_h; for (h = 0; h < height; h++) { @@ -103,15 +104,15 @@ int readpng(void *dest, const char *fname, readpng_what what, int req_w, int req { int x, y, x1, y1; unsigned char *dst = dest; - if (info_ptr->width != req_w || info_ptr->height != req_h) + if (png_get_image_width(png_ptr, info_ptr) != req_w || png_get_image_height(png_ptr, info_ptr) != req_h) { lprintf(__FILE__ ": unexpected font image size %dx%d, needed %dx%d\n", - (int)info_ptr->width, (int)info_ptr->height, req_w, req_h); + (int)png_get_image_width(png_ptr, info_ptr), (int)png_get_image_height(png_ptr, info_ptr), req_w, req_h); break; } - if (info_ptr->pixel_depth != 8) + if (png_get_bit_depth(png_ptr, info_ptr) != 8) { - lprintf(__FILE__ ": font image uses %ibpp, needed 8bpp\n", info_ptr->pixel_depth); + lprintf(__FILE__ ": font image uses %ibpp, needed 8bpp\n", png_get_bit_depth(png_ptr, info_ptr)); break; } for (y = 0; y < 16; y++) @@ -136,15 +137,15 @@ int readpng(void *dest, const char *fname, readpng_what what, int req_w, int req { int x1, y1; unsigned char *dst = dest; - if (info_ptr->width != req_w || info_ptr->height != req_h) + if (png_get_image_width(png_ptr, info_ptr) != req_w || png_get_image_height(png_ptr, info_ptr) != req_h) { lprintf(__FILE__ ": unexpected selector image size %ix%i, needed %dx%d\n", - (int)info_ptr->width, (int)info_ptr->height, req_w, req_h); + (int)png_get_image_width(png_ptr, info_ptr), (int)png_get_image_height(png_ptr, info_ptr), req_w, req_h); break; } - if (info_ptr->pixel_depth != 8) + if (png_get_bit_depth(png_ptr, info_ptr) != 8) { - lprintf(__FILE__ ": selector image uses %ibpp, needed 8bpp\n", info_ptr->pixel_depth); + lprintf(__FILE__ ": selector image uses %ibpp, needed 8bpp\n", png_get_bit_depth(png_ptr, info_ptr)); break; } for (y1 = 0; y1 < req_h; y1++) @@ -160,17 +161,17 @@ int readpng(void *dest, const char *fname, readpng_what what, int req_w, int req { int height, width, h; unsigned char *dst = dest; - if (info_ptr->pixel_depth != 24) + if (png_get_bit_depth(png_ptr, info_ptr) != 8) { - lprintf(__FILE__ ": image uses %ibpp, needed 24bpp\n", info_ptr->pixel_depth); + lprintf(__FILE__ ": image uses %ibpc, needed 8bpc\n", png_get_bit_depth(png_ptr, info_ptr)); break; } - height = info_ptr->height; - if (height > req_h) - height = req_h; - width = info_ptr->width; + width = png_get_image_width(png_ptr, info_ptr); if (width > req_w) width = req_w; + height = png_get_image_height(png_ptr, info_ptr); + if (height > req_h) + height = req_h; for (h = 0; h < height; h++) { -- 2.39.2