From: kramm Date: Sun, 16 Mar 2008 10:14:08 +0000 (+0000) Subject: added glow filter, and file-level detection of compressed swfs X-Git-Tag: buttons-working~398 X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=commitdiff_plain;h=8386a755728a87ff16fa1d62e87b0dd5660b6aa2 added glow filter, and file-level detection of compressed swfs --- diff --git a/src/swfdump.c b/src/swfdump.c index 99917eb..9a2dc70 100644 --- a/src/swfdump.c +++ b/src/swfdump.c @@ -538,6 +538,15 @@ void dumpFilter(FILTER*filter) FILTER_BLUR*f = (FILTER_BLUR*)filter; printf("blurx: %f blury: %f\n", f->blurx, f->blury); printf("passes: %d\n", f->passes); + } if(filter->type == FILTERTYPE_GLOW) { + FILTER_GLOW*f = (FILTER_GLOW*)filter; + printf("color %02x%02x%02x%02x\n", f->rgba.r,f->rgba.g,f->rgba.b,f->rgba.a); + printf("blurx: %f blury: %f strength: %f\n", f->blurx, f->blury, f->strength); + printf("passes: %d\n", f->passes); + printf("flags: %s%s%s\n", + f->knockout?"knockout ":"", + f->composite?"composite ":"", + f->innerglow?"innerglow":""); } if(filter->type == FILTERTYPE_DROPSHADOW) { FILTER_DROPSHADOW*f = (FILTER_DROPSHADOW*)filter; printf("blurx: %f blury: %f\n", f->blurx, f->blury); @@ -926,7 +935,6 @@ int main (int argc,char ** argv) } f = open(filename,O_RDONLY|O_BINARY); - if (f<0) { char buffer[256]; @@ -934,6 +942,12 @@ int main (int argc,char ** argv) perror(buffer); exit(1); } + char header[3]; + read(f, header, 3); + int compressed = (header[0]=='C'); + close(f); + f = open(filename,O_RDONLY|O_BINARY); + if FAILED(swf_ReadSWF(f,&swf)) { fprintf(stderr, "%s is not a valid SWF file or contains errors.\n",filename); @@ -943,13 +957,18 @@ int main (int argc,char ** argv) #ifdef HAVE_STAT fstat(f, &statbuf); - if(statbuf.st_size != swf.fileSize && !swf.compressed) + if(statbuf.st_size != swf.fileSize && !compressed) dumperror("Real Filesize (%d) doesn't match header Filesize (%d)", statbuf.st_size, swf.fileSize); filesize = statbuf.st_size; #endif close(f); + + if(action && swf.fileVersion>=9) { + fprintf(stderr, "Actionscript parsing (-a) not yet supported for SWF versions>=9\n"); + action = 0; + } xsize = (swf.movieSize.xmax-swf.movieSize.xmin)/20; ysize = (swf.movieSize.ymax-swf.movieSize.ymin)/20; @@ -1018,7 +1037,7 @@ int main (int argc,char ** argv) return 0; } printf("[HEADER] File version: %d\n", swf.fileVersion); - if(swf.compressed) { + if(compressed) { printf("[HEADER] File is zlib compressed."); if(filesize && swf.fileSize) printf(" Ratio: %02d%%\n", filesize*100/(swf.fileSize));