Support RGBA TIFFs

main
Isaiah Odhner 2021-07-29 23:07:25 -04:00
parent 0aa4afbe9c
commit 5f98090007
2 changed files with 5 additions and 3 deletions

View File

@ -347,6 +347,7 @@
"ovaloids",
"oviforms",
"paintbucket",
"pako",
"palettized",
"paypal",
"peggys",

View File

@ -1,6 +1,6 @@
/* eslint-disable */
;(function(){
var UTIF = {};
@ -1026,12 +1026,13 @@ UTIF.toRGBA8 = function(out, scl)
}
else if(intp==2)
{
var smpls = out["t258"]?out["t258"].length : 3;
var smpls = out["t258"]?out["t258"].length : 3;
if(bps== 8)
{
if(smpls==4) for(var i=0; i<qarea; i++) img[i] = data[i];
if(smpls==3) for(var i=0; i<area; i++) { var qi=i<<2, ti=i*3; img[qi]=data[ti]; img[qi+1]=data[ti+1]; img[qi+2]=data[ti+2]; img[qi+3]=255; }
// e.g. corel_photopaint_rgba.tif from https://github.com/jkriege2/TinyTIFF/blob/f6739ffd351b782e6cf9a81e6a61e8faa615e629/tests/tinytiffreader_test/corel_photopaint_rgba.tif
if(smpls==5) for(var i=0; i<area; i++) { var qi=i<<2, ti=i*5; img[qi]=data[ti]; img[qi+1]=data[ti+1]; img[qi+2]=data[ti+2]; img[qi+3]=data[ti+3]; }
}
else{ // 3x 16-bit channel
if(smpls==4) for(var i=0; i<area; i++) { var qi=i<<2, ti=i*8+1; img[qi]=data[ti]; img[qi+1]=data[ti+2]; img[qi+2]=data[ti+4]; img[qi+3]=data[ti+6]; }