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);
png_write_png(png, info, 0, 0);
png_destroy_write_struct(&png, &info);
free(scanline);
- fclose(fp);
return 0;
}