From 211b31e1545439d39813063b4a154a9801c1d618 Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Fri, 21 Aug 2015 10:38:38 +0200 Subject: [PATCH] TMI #163 Support for TIFF containing signed integral other than 16 bit. --- .../imageio/plugins/tiff/TIFFImageReader.java | 12 +++++++++--- .../plugins/tiff/TIFFImageReaderTest.java | 1 + .../resources/tiff/signed-integral-8bit.tif | Bin 0 -> 75972 bytes 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 imageio/imageio-tiff/src/test/resources/tiff/signed-integral-8bit.tif diff --git a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReader.java b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReader.java index 9bc4cc25..d9968124 100755 --- a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReader.java +++ b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReader.java @@ -521,10 +521,16 @@ public class TIFFImageReader extends ImageReaderBase { case TIFFBaseline.SAMPLEFORMAT_UINT: return bitsPerSample <= 8 ? DataBuffer.TYPE_BYTE : bitsPerSample <= 16 ? DataBuffer.TYPE_USHORT : DataBuffer.TYPE_INT; case TIFFExtension.SAMPLEFORMAT_INT: - if (bitsPerSample == 16) { - return DataBuffer.TYPE_SHORT; + switch (bitsPerSample) { + case 8: + return DataBuffer.TYPE_BYTE; + case 16: + return DataBuffer.TYPE_SHORT; + case 32: + return DataBuffer.TYPE_INT; } - throw new IIOException("Unsupported BitsPerSample for SampleFormat 2/Signed Integer (expected 16): " + bitsPerSample); + + throw new IIOException("Unsupported BitsPerSample for SampleFormat 2/Signed Integer (expected 8/16/32): " + bitsPerSample); case TIFFExtension.SAMPLEFORMAT_FP: throw new IIOException("Unsupported TIFF SampleFormat: 3 (Floating point)"); case TIFFExtension.SAMPLEFORMAT_UNDEFINED: diff --git a/imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderTest.java b/imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderTest.java index 6808363b..4e64699e 100644 --- a/imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderTest.java +++ b/imageio/imageio-tiff/src/test/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderTest.java @@ -82,6 +82,7 @@ public class TIFFImageReaderTest extends ImageReaderAbstractTestT|8OQ&VKtd9@yhs88lF9N)NcJANkjHU%U>=8oydW1y!gF#r$&I<)J$LuG z1W`l;EiKE^LJ$!|5F==5S(c(8B8VU&NNHJ?mV$^Nf`}lcWm!7*bWiv6?9T0y?Cm6T z`Tmt`fBn7s>tF9(LDsLw832yL6azSdS!^-xHwz!+BE z0ppa97*l!eK34OLF+CXW(J_F2J2OQ73&3*tl@x8#D z`M})gfq6FrC$9%iWh_p65SX6_&R75}`~#4_1!&p;w6J*>e;-&<0G2X(%U%Fhd=@xs zBhWDp=zIt`rwFWE2(0=eu;y0a+)cpR@xXaM0M-ox8x{c@Uj#1r9I*KUU<;#r(Zj&j ztAOok;F3Q9m)!Q0@v&XKF|zY`)A;~JAmuA05=>B-1sBlqgMkTYXLs~3h;?90H3@F_|!4L zrym1udLMA}V&Im)0Jq)=+;%Z=djoLCkAXX{0q$xA?tT@x=ZnC;t-!sLf%_f@zV?3L z>q~%dyas&pF5p|+fN!(+`py%;cRv6;a3=8JUxA121|HrHJTet{^e4b$*8-0(1)g{v zc=AiYQfCh@XNmezq$wb^`*dXrUSqIDe$}NfajJ2&%Xh@@MYk| z%Yc`T1zvs%c;!RDt1E!l{tmpp4|wBp;LRDpTR#Kdz8?5z8}P3;fq#Dm_|FxF=D$kRo=tL<&hm1rGlDN*<(~l~TGJ;ux0Rmq{ zn&y&6CVD+aie1c=He1zB8G%o8mFHa!`rgG=q^7sM__7IA}XmCnnRh)5U;CyWVcE_6_d%qiw2%#Ta&|LH+H#4u9KB9S(%zk`IMmt z!@ad#S(4_ECR@cQs&!xlvqbq+VQ^xED+rDPOWsee)v%Q3DNh9&WjUHdnsTlDL{anU zK7WXyS%s+*6q-^Zc0cZs>l9^73CxN8x~DQU zR1%9=MTwRt!xbLQtI^NXs>7yyF1d=sv{}OGGA!H65wt8VCAsGG8pU|j*n!Fq0s(rp zg8+T{^kZui`(dlC0aYImff)xP*Y&H|s~t!^)f^N8?6ss0%K3EY%mb7EY6n(KRYc(M zBruCa1c*RP1dbymk-+gJB0vOUA~2go1c*RP1Wq6&k-&+h(MG`K7vlepC9dX~l`g4* zej+ceQd6lP#fBqr((rO!FUCK_r?!u(V(;U-OA@6!s)&3eOu+SDjJNg33;LDbz>k%r zlx#GTDjNx)N~bxavuSRq`l&t5UpK{DP2A zK6YJaJ^Y%_9Y*flx$F-U|IZ3xi7mIeDO04!<%X-3lxE0GT5BX=M$2Vx@2`+=c`q39 z1{pk0Y*`MI_|&pRC;F@>0YN@EL3^KQlc$Q1pAgyvoyZyy0`nrpe>1WV8C1r+z?!GU zMV^TH8GO;QWh+|iOF%;&X)>qg_hu1W?Xx6a-+2$K?x|trdJ*yAeR9kH3?iN-B{EVj z&*mH7BNJ$ifq-D{{kjx~c~8|5EM(VX;sCuaEwY+0wzy(TLzsywe%g zN9dvC3(3`+L$~9Z>o7m1v9eqq);}A?hWWV>3RUh!(YOf6C(>Vt|KBzr zz_Y|8GB2*V4*PSONJ%8nOd3I5g-CF5ojk70U{6+ zfesQ8AObNF=p-ePz}X}sKm=kUa1MzG5P_Hoyo*Exh(JsPR+5rPU=@i75P_HotR@iw zA`laSH6$WH1Y#o4MM@%pb4f&i2*gC--6SGF1Y#nvmXt&S=aGm25r~Pv`6MDh1Y#nv zjzk2AKuiSIlafea1BnO_ftUzvBoP535EFq-BqBfrVj^$>DTxFwBoP535EFsTBqBfr zVj|E@A_7DpCIVYXNhEL)i3kvZmErk(A{^*Y&I9jPtdUFqd1vrx3My;grNYj>owxzyR6?eo%U^I|KXWm#=zvCk=( zJ-JNA&K6B(T3K`B`ZejT>(`kXyJ+=VMa$gLpX=GZ$Q%i7f)slj}ExYur7vCQsWwqnULc2vP>EAScC<$Cz#LubCTi6xVFen$^q zD-9=pF_u5@;-$@V%H z`|cL=gY4p~dlmb(3#(gMTRT!qT2~0~Hs)Q* zpm@34c}Dl%0XB(~EiPy0uM(5+#=hOw%zImzfquKN$&oVo<1tg9V+MZ~wz98iC;kr*d~T!w literal 0 HcmV?d00001