diff --git a/UPNG.js b/UPNG.js index 020127a1dab3c599592a56c203fed1708b23507e..a463e9da2504fd5125f97f586ebadf4fcdb4b180 100644 --- a/UPNG.js +++ b/UPNG.js @@ -87,10 +87,10 @@ UPNG.toRGBA8.decodeImage = function(data, w, h, out) if(depth==16) for(var i=0; i>3]>>(7 -((i&7) )))& 1), al=(gr==tr*255)?0:255; bf32[i]=(al<<24)|(gr<<16)|(gr<<8)|gr; } - if(depth== 2) for(var i=0; i>2]>>(6 -((i&3)<<1)))& 3), al=(gr==tr* 85)?0:255; bf32[i]=(al<<24)|(gr<<16)|(gr<<8)|gr; } - if(depth== 4) for(var i=0; i>1]>>(4 -((i&1)<<2)))&15), al=(gr==tr* 17)?0:255; bf32[i]=(al<<24)|(gr<<16)|(gr<<8)|gr; } + var tr = out.tabs["tRNS"] != null ? out.tabs["tRNS"] : -1; + if(depth== 1) for(var i=0; i>3)]>>(7 -((x&7) )))& 1), al=(gr==tr*255)?0:255; bf32[i]=(al<<24)|(gr<<16)|(gr<<8)|gr; } + if(depth== 2) for(var i=0; i>2)]>>(6 -((x&3)<<1)))& 3), al=(gr==tr* 85)?0:255; bf32[i]=(al<<24)|(gr<<16)|(gr<<8)|gr; } + if(depth== 4) for(var i=0; i>1)]>>(4 -((x&1)<<2)))&15), al=(gr==tr* 17)?0:255; bf32[i]=(al<<24)|(gr<<16)|(gr<<8)|gr; } if(depth== 8) for(var i=0; i>3]; val = (val>>(7-(cdi&7)))&1; - img[row*bpl + (col>>3)] |= (val << (7-((col&3)<<0))); + img[row*bpl + (col>>3)] |= (val << (7-((col&7)<<0))); } if(bpp==2) { var val = data[cdi>>3]; val = (val>>(6-(cdi&7)))&3;