diff options
author | Erik Reckase <e.reckase@gmail.com> | 2011-11-06 12:42:31 +0000 |
---|---|---|
committer | Scott Draves <spot@draves.org> | 2015-02-15 12:20:15 -0500 |
commit | fb1c90e18b0d77a8b4035461722b89c7db46db51 (patch) | |
tree | 3175d6800b1ca09dc696243b8bf32bc00f0bd73f /src | |
parent | 39e3709d6fd2b6716b5dade441cfd0a56c06f99c (diff) | |
download | pucket-fb1c90e18b0d77a8b4035461722b89c7db46db51.tar.gz pucket-fb1c90e18b0d77a8b4035461722b89c7db46db51.tar.bz2 pucket-fb1c90e18b0d77a8b4035461722b89c7db46db51.zip |
Modified for libpng 1.5 API support.
git-svn-id: https://flam3.googlecode.com/svn/trunk@164 77852712-ef1d-11de-8684-7d64432d61a3
Diffstat (limited to 'src')
-rwxr-xr-x | src/png.c | 28 |
1 files changed, 14 insertions, 14 deletions
@@ -142,7 +142,7 @@ unsigned char *read_png(FILE *ifp, int *width, int *height) { } if (setjmp(png_jmpbuf(png_ptr))) { if (png_image) { - for (y = 0 ; y < info_ptr->height ; y++) + for (y = 0 ; y < png_get_image_height(png_ptr, info_ptr) ; y++) free (png_image[y]); free (png_image); } @@ -161,19 +161,19 @@ unsigned char *read_png(FILE *ifp, int *width, int *height) { png_set_sig_bytes (png_ptr, SIG_CHECK_SIZE); png_read_info (png_ptr, info_ptr); - if (8 != info_ptr->bit_depth) { + if (8 != png_get_bit_depth(png_ptr, info_ptr)) { fprintf(stderr, "bit depth type must be 8, not %d.\n", - info_ptr->bit_depth); + png_get_bit_depth(png_ptr, info_ptr)); return 0; } - *width = info_ptr->width; - *height = info_ptr->height; + *width = png_get_image_width(png_ptr, info_ptr); + *height = png_get_image_height(png_ptr, info_ptr); p = q = malloc(4 * *width * *height); - png_image = (png_byte **)malloc (info_ptr->height * sizeof (png_byte*)); + png_image = (png_byte **)malloc (*height * sizeof (png_byte*)); - linesize = info_ptr->width; - switch (info_ptr->color_type) { + linesize = *width; + switch (png_get_color_type(png_ptr, info_ptr)) { case PNG_COLOR_TYPE_RGB: linesize *= 3; break; @@ -182,21 +182,21 @@ unsigned char *read_png(FILE *ifp, int *width, int *height) { break; default: fprintf(stderr, "color type must be RGB or RGBA not %d.\n", - info_ptr->color_type); + png_get_color_type(png_ptr, info_ptr)); return 0; } - for (y = 0 ; y < info_ptr->height ; y++) { + for (y = 0 ; y < *height ; y++) { png_image[y] = malloc (linesize); } png_read_image (png_ptr, png_image); png_read_end (png_ptr, info_ptr); - for (y = 0 ; y < info_ptr->height ; y++) { + for (y = 0 ; y < *height ; y++) { unsigned char *s = png_image[y]; - for (x = 0 ; x < info_ptr->width ; x++) { + for (x = 0 ; x < *width ; x++) { - switch (info_ptr->color_type) { + switch (png_get_color_type(png_ptr, info_ptr)) { case PNG_COLOR_TYPE_RGB: p[0] = s[0]; p[1] = s[1]; @@ -217,7 +217,7 @@ unsigned char *read_png(FILE *ifp, int *width, int *height) { } } - for (y = 0 ; y < info_ptr->height ; y++) + for (y = 0 ; y < *height ; y++) free (png_image[y]); free (png_image); png_destroy_read_struct (&png_ptr, &info_ptr, (png_infopp)NULL); |