X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpng.c;h=14de7f66b244bd346333e005c8ec66cbcbfc5116;hb=2c1efd65d13c2886d53ec3fd1ce59d58b8e054c9;hp=bcabd4c36ff4f7f10f641c41d5423cad512e6b0d;hpb=021eda01dd273614ec1bb0cc0cabfcebfcdb0680;p=swftools.git diff --git a/lib/png.c b/lib/png.c index bcabd4c..14de7f6 100644 --- a/lib/png.c +++ b/lib/png.c @@ -455,6 +455,7 @@ EXPORT int getPNGdimensions(const char*sname, int*destwidth, int*destheight) *destwidth = header.width; *destheight = header.height; + fclose(fi); return 1; } @@ -561,6 +562,7 @@ EXPORT int getPNG(const char*sname, int*destwidth, int*destheight, unsigned char } } + fclose(fi); if(!zimagedata || uncompress(imagedata, &imagedatalen, zimagedata, zimagedatalen) != Z_OK) { printf("Couldn't uncompress %s!\n", sname); if(zimagedata) @@ -568,7 +570,6 @@ EXPORT int getPNG(const char*sname, int*destwidth, int*destheight, unsigned char return 0; } free(zimagedata); - fclose(fi); *destwidth = header.width; *destheight = header.height; @@ -1465,11 +1466,10 @@ static int png_find_best_filter(unsigned char*src, int width, int bpp, int y) static int png_apply_filter(unsigned char*dest, unsigned char*src, int width, int y, int bpp) { - make_num_bits_table(); - - int num_filters = y>0?5:2; //don't apply y-direction filter in first line int best_nr = 0; #if 0 + make_num_bits_table(); + int num_filters = y>0?5:2; //don't apply y-direction filter in first line int f; int best_energy = INT_MAX; int w = width*(bpp/8); @@ -1514,11 +1514,11 @@ static int png_apply_filter(unsigned char*dest, unsigned char*src, int width, in int png_apply_filter_8(unsigned char*dest, unsigned char*src, int width, int y) { - png_apply_filter(dest, src, width, y, 8); + return png_apply_filter(dest, src, width, y, 8); } int png_apply_filter_32(unsigned char*dest, unsigned char*src, int width, int y) { - png_apply_filter(dest, src, width, y, 32); + return png_apply_filter(dest, src, width, y, 32); } EXPORT void savePNG(const char*filename, unsigned char*data, int width, int height, int numcolors) @@ -1529,8 +1529,6 @@ EXPORT void savePNG(const char*filename, unsigned char*data, int width, int heig unsigned char format; unsigned char tmp; unsigned char* data2=0; - u32 datalen; - u32 datalen2; unsigned char head[] = {137,80,78,71,13,10,26,10}; // PNG header int cols; char alpha = 1; @@ -1567,8 +1565,6 @@ EXPORT void savePNG(const char*filename, unsigned char*data, int width, int heig png_quantize_image(data, width*height, numcolors, &data, palette); } - datalen = (width*height*bpp/8+cols*8); - fi = fopen(filename, "wb"); if(!fi) { perror("open");