improved shade-lut generation
[gbajam21] / tools / pngdump / image.c
index 5602354..b3069f7 100644 (file)
@@ -102,18 +102,26 @@ int load_image(struct image *img, const char *fname)
 
 int save_image(struct image *img, const char *fname)
 {
-       int i, chan_bits, coltype;
        FILE *fp;
-       png_struct *png;
-       png_info *info;
-       png_text txt;
-       unsigned char **scanline = 0;
-       unsigned char *pptr;
+       int res;
 
        if(!(fp = fopen(fname, "wb"))) {
                fprintf(stderr, "save_image: failed to open: %s: %s\n", fname, strerror(errno));
                return -1;
        }
+       res = save_image_file(img, fp);
+       fclose(fp);
+       return res;
+}
+
+int save_image_file(struct image *img, FILE *fp)
+{
+       int i, chan_bits, coltype;
+       png_struct *png;
+       png_info *info;
+       png_text txt;
+       unsigned char **scanline = 0;
+       unsigned char *pptr;
 
        if(!(png = png_create_write_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0))) {
                fclose(fp);
@@ -182,7 +190,6 @@ int save_image(struct image *img, const char *fname)
        png_write_png(png, info, 0, 0);
        png_destroy_write_struct(&png, &info);
        free(scanline);
-       fclose(fp);
        return 0;
 }