added "addcut" option
[swftools.git] / src / png2swf.c
index b765df0..b03a11d 100644 (file)
@@ -315,11 +315,11 @@ void applyfilter4(int mode, U8*src, U8*old, U8*dest, int width)
     unsigned char lastr=0;
     unsigned char lastg=0;
     unsigned char lastb=0;
-    unsigned char lasta=0;
+    unsigned char lasta=0; //TODO: 255?
     unsigned char upperlastr=0;
     unsigned char upperlastg=0;
     unsigned char upperlastb=0;
-    unsigned char upperlasta=0;
+    unsigned char upperlasta=0; //TODO: 255?
 
     if(mode==0) {
        for(x=0;x<width;x++) {
@@ -570,7 +570,7 @@ TAG *MovieAddFrame(SWF * swf, TAG * t, char *sname, int id)
 
            if(!y) {
                old = firstline;
-               memset(old, 0, header.width*4);
+               memset(old, 0, header.width*4); //TODO: fill alpha with 255?
            } else {
                old = &data2[(y-1)*header.width*4];
            }
@@ -688,7 +688,9 @@ TAG *MovieAddFrame(SWF * swf, TAG * t, char *sname, int id)
     swf_GetMatrix(NULL, &m);
     m.sx = 20 * 0x10000;
     m.sy = 20 * 0x10000;
-    fs = swf_ShapeAddBitmapFillStyle(s, &m, id, 0);
+    m.tx = -10;
+    m.ty = -10;
+    fs = swf_ShapeAddBitmapFillStyle(s, &m, id, 1);
 
     swf_SetU16(t, id + 1);     // id
 
@@ -744,9 +746,10 @@ int CheckInputFile(char *fname, char **realname)
            sprintf(s, "%s.PNG", fname);
            if ((fi = fopen(s, "rb")) == NULL) {
                sprintf(s, "%s.Png", fname);
-               if ((fi = fopen(s, "rb")) == NULL)
+               if ((fi = fopen(s, "rb")) == NULL) {
                    fprintf(stderr, "Couldn't open %s!\n", fname);
                    return -1;
+               }
            }
        }
     }
@@ -776,7 +779,9 @@ int args_callback_option(char *arg, char *val)
        case 'r':
            if (val)
                global.framerate = atof(val);
-           if ((global.framerate < 1.0/256) ||(global.framerate >= 256.0)) {
+           /* removed framerate>0 restriction in order to make
+              Flash Communication Server compatible SWFs */
+           if ((global.framerate < 0) ||(global.framerate >= 256.0)) {
                if (VERBOSE(1))
                    fprintf(stderr,
                            "Error: You must specify a valid framerate between 1/256 and 255.\n");
@@ -801,9 +806,15 @@ int args_callback_option(char *arg, char *val)
            break;
 
        case 'v':
-           if (val)
-               global.verbose = atoi(val);
-           res = 1;
+           global.verbose++;
+           res = 0;
+           break;
+
+       case 'q':
+           global.verbose--;
+           if(global.verbose<0)
+               global.verbose = 0;
+           res = 0;
            break;
 
        case 'X':
@@ -843,6 +854,7 @@ static struct options_t options[] = {
 {"X", "pixel"},
 {"Y", "pixel"},
 {"v", "verbose"},
+{"q", "quiet"},
 {"C", "cgi"},
 {"V", "version"},
 {0,0}
@@ -882,7 +894,8 @@ void args_callback_usage(char *name)
     printf("-z , --zlib <zlib>             Enable Flash 6 (MX) Zlib Compression\n");
     printf("-X , --pixel <width>           Force movie width to <width> (default: autodetect)\n");
     printf("-Y , --pixel <height>          Force movie height to <height> (default: autodetect)\n");
-    printf("-v , --verbose <level>         Set verbose level (0=quiet, 1=default, 2=debug)\n");
+    printf("-v , --verbose                 Be verbose. Use more than one -v for greater effect \n");
+    printf("-q , --quiet                   Omit normal log messages, only log errors\n");
     printf("-C , --cgi                     For use as CGI- prepend http header, write to stdout\n");
     printf("-V , --version                 Print version information and exit\n");
     printf("\n");