--- a/codecs/png.cc
+++ b/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;
