X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fmodules%2Fswfbits.c;h=0af32c7a007c0449dfd9f1deb210f36d1a652c69;hb=b0ad0b5b883227e3dfc331b7da3dff2b0e52538b;hp=30f2e421fe5a8abbb0aa84b3836ffa22a901f087;hpb=bb60888f44bada294d1634729068c2f566641dc3;p=swftools.git diff --git a/lib/modules/swfbits.c b/lib/modules/swfbits.c index 30f2e42..0af32c7 100644 --- a/lib/modules/swfbits.c +++ b/lib/modules/swfbits.c @@ -150,8 +150,10 @@ int swf_ImageGetNumberOfPaletteEntries(RGBA*img, int width, int height, RGBA*pal } lastcol32 = col32; } - if(palette_overflow) + if(palette_overflow) { + free(pal); return width*height; + } if(palette) { int i = 0; for(t=0;t<256;t++) { @@ -895,9 +897,16 @@ RGBA *swf_DefineLosslessBitsTagToImage(TAG * tag, int *dwidth, int *dheight) dest[pos2].r = data[pos + 1]; dest[pos2].g = data[pos + 2]; dest[pos2].b = data[pos + 3];*/ - dest[pos2].r = ((int)data[pos + 1]*255)/(int)data[pos+0]; - dest[pos2].g = ((int)data[pos + 2]*255)/(int)data[pos+0]; - dest[pos2].b = ((int)data[pos + 3]*255)/(int)data[pos+0]; + int alpha = data[pos+0]; + if(alpha) { + dest[pos2].r = ((int)data[pos + 1]*255)/alpha; + dest[pos2].g = ((int)data[pos + 2]*255)/alpha; + dest[pos2].b = ((int)data[pos + 3]*255)/alpha; + } else { + dest[pos2].r = data[pos + 1]; + dest[pos2].g = data[pos + 2]; + dest[pos2].b = data[pos + 3]; + } dest[pos2].a = data[pos + 0]; //alpha pos2++; pos += 4;