X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=tools%2Fpngdump%2Fimage.c;h=b3069f7c5b253a02450ad7aa7efb32c64ac0f167;hb=7cc6746ff112ccd3fafef1be1a4843a5d972a49c;hp=5602354e291039b08f985c84d0a4962ec65a64b3;hpb=95693de3106b0304fe8e5c705c37e633f91a4ad5;p=gbajam21 diff --git a/tools/pngdump/image.c b/tools/pngdump/image.c index 5602354..b3069f7 100644 --- a/tools/pngdump/image.c +++ b/tools/pngdump/image.c @@ -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; }