+ if(header.mode==6)
+ applyfilter4(mode, src, old, dest, header.width);
+ else
+ applyfilter3(mode, src, old, dest, header.width);
+ }
+
+#ifdef HAVE_LIBJPEG
+ /* the image is now compressed and stored in data. Now let's take
+ a look at the alpha values to determine which bitmap type we
+ should write */
+ if(header.mode == 6)
+ for(y=0;y<header.height;y++) {
+ U8*l = &data2[(y*header.width)*4];
+ for(x=0;x<header.width;x++) {
+ if(l[x*4+0]==255) transparent++;
+ if(l[x*4+0]==0) opaque++;
+ }
+ }
+ /* mode 6 images which are not fully opaque or fully transparent
+ will be stored as definejpeg3 */
+ if(header.mode == 6 && transparent != header.width*header.height
+ && opaque != header.width*header.height) {
+
+ printf("Image has transparency information. Storing as DefineBitsJpeg3 Tag (jpeg+alpha)\n");
+
+ // we always use quality 100, since png2swf is expected to
+ // use more or less lossless compression
+
+ swf_SetJPEGBits3(t, header.width, header.height, (RGBA*)data2, 100);
+ t->id = ST_DEFINEBITSJPEG3;
+ }
+ else
+#endif
+ {
+ swf_SetLosslessBits(t, header.width, header.height, data2, BMF_32BIT);