| --- codecs/png.cc |
| +++ codecs/png.cc |
| @@ -16,6 +16,7 @@ |
| */ |
| |
| #include <stdlib.h> |
| +#include <zlib.h> |
| #include <png.h> |
| |
| #include <iostream> |
| @@ -104,7 +105,7 @@ |
| image.w = width; |
| image.h = height; |
| image.bps = bit_depth; |
| - image.spp = info_ptr->channels; |
| + image.spp = png_get_channels(png_ptr, info_ptr); |
| |
| png_uint_32 res_x, res_y; |
| res_x = png_get_x_pixels_per_meter(png_ptr, info_ptr); |
| @@ -120,10 +121,13 @@ |
| // png_set_packswap(png_ptr); |
| |
| /* Expand paletted colors into true RGB triplets */ |
| + |
| + int num_trans; |
| + |
| if (color_type == PNG_COLOR_TYPE_PALETTE) { |
| png_set_palette_to_rgb(png_ptr); |
| image.bps = 8; |
| - if (info_ptr->num_trans) |
| + if (num_trans) |
| image.spp = 4; |
| else |
| image.spp = 3; |