- png_set_IHDR(png_ptr, info_ptr, surface->x, surface->y, surface->bpp,
- surface->clut.data ? PNG_COLOR_TYPE_PALETTE : PNG_COLOR_TYPE_GRAY,
- PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
- if (surface->clut.data)
+ png_write_info(png_ptr, info_ptr);
+ png_set_packing(png_ptr);
+
+ png_byte *row_pointer;
+ png_byte *cr = new png_byte[surface->y * surface->stride];
+ if (cr == NULL)
+ {
+ printf("Error: malloc\n");
+ return -5;
+ }
+ for (int i=0; i<surface->y; ++i)