added as3/ to clean targets
[swftools.git] / lib / png.c
index 739b895..e290b6f 100644 (file)
--- a/lib/png.c
+++ b/lib/png.c
@@ -99,7 +99,7 @@ static int png_read_header(FILE*fi, struct png_header*header)
     unsigned char*data;
     fread(head2,8,1,fi);
     if(strncmp((const char*)head,(const char*)head2,4))
-       return 0;
+       return 0; // not a png file
     
     while(png_read_chunk(&id, &len, &data, fi))
     {
@@ -197,6 +197,7 @@ static void applyfilter1(int mode, unsigned char*src, unsigned char*old, unsigne
     else if(mode==3) {
        for(x=0;x<width;x++) {
            *dest = *src+(*old+last)/2;
+           last = *dest;
            dest++;
            old++;
            src++;
@@ -448,7 +449,6 @@ EXPORT int getPNGdimensions(const char*sname, int*destwidth, int*destheight)
        return 0;
     }
     if(!png_read_header(fi, &header)) {
-       fprintf(stderr, "Error reading header from file %s\n", sname);
        return 0;
     }
 
@@ -485,7 +485,6 @@ EXPORT int getPNG(const char*sname, int*destwidth, int*destheight, unsigned char
     }
 
     if(!png_read_header(fi, &header)) {
-       printf("Error reading header from file %s\n", sname);
        return 0;
     }
 
@@ -1083,7 +1082,7 @@ EXPORT void writePNG(const char*filename, unsigned char*data, int width, int hei
     zs.opaque = Z_NULL;
     zs.next_out = writebuf;
     zs.avail_out = ZLIB_BUFFER_SIZE;
-    ret = deflateInit(&zs, 9);
+    ret = deflateInit(&zs, Z_NO_COMPRESSION);
     if (ret != Z_OK) {
        fprintf(stderr, "error in deflateInit(): %s", zs.msg?zs.msg:"unknown");
        return;
@@ -1101,7 +1100,7 @@ EXPORT void writePNG(const char*filename, unsigned char*data, int width, int hei
        {
            int filtermode;
            int bestsize = 0x7fffffff;
-           for(filtermode=0;filtermode<5;filtermode++) {
+           for(filtermode=0;filtermode<=0;filtermode++) {
 
                if(!y && filtermode>=2)
                    continue; // don't do y direction filters in the first row