+ if (setjmp(png_jmpbuf(png_read_ptr))) {
+ png_destroy_read_struct(&png_read_ptr, &info_ptr, (png_infopp) NULL);
+ return 0;
+ }
+
+ png_init_io(png_read_ptr, fd);
+ png_read_info(png_read_ptr, info_ptr);
+ (*width) = png_get_image_width(png_read_ptr, info_ptr);
+ (*height) = png_get_image_height(png_read_ptr, info_ptr);
+
+ png_destroy_read_struct(&png_read_ptr, &info_ptr, NULL);
+ if (*width > 0 && *height > 0)
+ return 1;
+ else
+ return 0;
+}