+
+#ifdef HAVE_ZLIB
+ if(offset) {
+ U32 datalen = cinfo.output_width*cinfo.output_height;
+ U8* alphadata = (U8*)rfx_alloc(datalen);
+ int error;
+ tag->len = oldtaglen;
+ swf_SetTagPos(tag, 6+offset);
+ error = uncompress(alphadata, &datalen, &tag->data[tag->pos], tag->len - tag->pos);
+ if (error != Z_OK) {
+ fprintf(stderr, "rfxswf: Zlib error %d while extracting definejpeg3\n", error);
+ return 0;
+ }
+ for(y=0;y<cinfo.output_height;y++) {
+ RGBA*line = &dest[y*cinfo.output_width];
+ U8*aline = &alphadata[y*cinfo.output_width];
+ int x;
+ for(x=0;x<cinfo.output_width;x++) {
+ line[x].a = aline[x];
+ }
+ }
+ free(alphadata);
+ }
+#endif