From 077e40acf2e550e30b74675c1f81896061465b70 Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Fri, 14 Aug 2015 09:58:15 +0200 Subject: [PATCH] TMI#159: Clean-up after merge + added test cases for the CCITT images. --- .../plugins/tiff/CCITTFaxDecoderStream.java | 17 ++++++++++++----- .../plugins/tiff/TIFFImageReaderTest.java | 10 +++++++++- .../tiff/fivepages-scan-causingerrors.tif | Bin 0 -> 13828 bytes 3 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 imageio/imageio-tiff/src/test/resources/tiff/fivepages-scan-causingerrors.tif diff --git a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/CCITTFaxDecoderStream.java b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/CCITTFaxDecoderStream.java index 7a284249..d22821c7 100644 --- a/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/CCITTFaxDecoderStream.java +++ b/imageio/imageio-tiff/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/CCITTFaxDecoderStream.java @@ -183,24 +183,31 @@ final class CCITTFaxDecoderStream extends FilterInputStream { case VALUE_PASSMODE: int pChangingElement = getNextChangingElement(index, white) + 1; - if(pChangingElement >= changesReferenceRowCount || pChangingElement == -1){ + + if (pChangingElement >= changesReferenceRowCount || pChangingElement == -1) { index = columns; - }else{ + } + else { index = changesReferenceRow[pChangingElement]; } + break; default: // Vertical mode (-3 to 3) int vChangingElement = getNextChangingElement(index, white); - if(vChangingElement >= changesReferenceRowCount || vChangingElement == -1){ + + if (vChangingElement >= changesReferenceRowCount || vChangingElement == -1) { index = columns + n.value; - }else{ - index = changesReferenceRow[vChangingElement]+ n.value; } + else { + index = changesReferenceRow[vChangingElement] + n.value; + } + changesCurrentRow[changesCurrentRowCount] = index; changesCurrentRowCount++; white = !white; + break; } 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 60c50ec3..b41b6d96 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 @@ -80,7 +80,15 @@ public class TIFFImageReaderTest extends ImageReaderAbstractTestatfHhV)E(-o6~Hx3Ftrv-5EA{lhd_yOr3zP<2X5mLs?My?eBNn4jtjVcWUaIzQ8qI7c#z!bgiFV0^!5nci84lYnD__ z%=WJNz}MGz*>ivW@lf;?*V&JC2DpTa#o{}MgMXYCFvD}#TawO`zP^*f9%~9>l`mVr zBCL$IhfukB&r*AY_P|F-M?xj1DTq@9J$|~Q>@TG)4{NdySuQ7yR3diEmWla;)%d-t z*qHz3S7==zb1 zu|4{i+S|vGOVdL;iWD0%+z;=pc)LBwjjgFD7X$^IKP}1EZMl79ox7yPH9@fW*{vJm z3uLoh`L2ACQD7ANxLy4sFh-i7&e=QrnmT)>+{2)bIWOc~Q|B1eIlA-0=ZkvwMuvC=J=-IEzn_MrlxUZ<+WUQbI#S*O)DiruG4I z%HM-dhcf2G`}8q9NDIdk)TwXrl>v~7vPp%1-_6DZ4Os;7Mldc+MRK-Oo}2>-*{Qrk zuD7g0Rtdyrgba{qRk1Rd*oX~V+K6ReR{h2-B_>krU#j5BrHX>RGxZ9tP^u_NpHQGQ z#`8LiaeD<2D~wX_ot5ZnLcI3pl~^1I@|2t&VXaPL;;4ny3W+KBZLj7c{hZ!h?u!ZV z?rD~oChK|a*ug9+DMKNRx8$-+CQwmYa)nB>u$sV%^aMvo0E<-T@veHwBA1%u&BaNJ z1BI9Jcp9CevI}HPW+4eiG6*h2jF=o$k+=pF4SF6>>O5q{o(9RS=`N)p%`uEfTLr+9 zQr7C`Zd^SuqCu*kF4O(xPMF1J(TJr9lI2%-il}} z%{4f;6MM;HI6Ol!wP+w=?q_T36AR$!yV0n(hM8uSJz8*7 zOoLh#Du7!Dh_z0mB*sMA!q%8j{T;&4b`Akc>AgS^)cT&%OTOPs`zqA`y{fV)IJ;OB zelAE_P(S5hjIT>t>32Oz=`Kk(O}uNpdQ)z$-W1}~mm5P2k}A`%hN_~qa`aCrP?r&? z?t*8$YpB>86&LX_=)4Cw-5N~U z`XE{-VJTo11LlPuOc=Fd+Sdeo;{Dz*Cm#@o$4k@F{ekY!_q$8pIk+cjVI|8+aZoHy zN-sz}xM$le=j4szq<{%7AF*Fv&wh_}QM|%Q;QaF_z3CB9`Z2GcN9oAE9i`ud(}5kO z9{^oDO0Nd`*P?WU%-@`H51rdldc}p1Cu)+5KQ8IoGS#K}<%?o*-I)VVEt^{vGQ@vk z!ii459+*FGbcW0fd3XNq>C;8uB8iNzekbYNA-px-v)X^=W z@>?*tj3Z!kygqW|5ptU8M+`BEpDeln?$v7HJp~=D#MHLv=P(5A!3cx+JkG?*$-Y*N zIJ%xFNOw`c&UF#N}$;XX*Bsdxy+-Hy!mwpS@Y?Cc;glC9Sh>!K2q< zs5<*`^XWI6bm2ogIBs!fE)F1i>dUn^J#+3`z|nstC-ZQYm7;Z^P6rCw#3TG zE@CADXABNw0M;8mCO!ZtfNXE^b%c@+K#ob4iVEli1oYIt?&e?y;Js01M4WH30r6S# zN>*!?d@J&Ev}dQ+GN`aiPHGTnGg+oQnH_B59;Udo*>@@}*X^?v;T{gOOvRb(5sn;z zj!em{Q7D-;3CaM7zkewM2TdaqsdJPD2HB?qMhAdyhwD6fX!ZGcgw}x%@Ol%D05rh{ zgv`Z~)j}z!H1AE;*C zn~7m7T!)-krr{C8!^kjCor|Ena+uSPAq+DAg@z0 zv?YJ@?TT%E03inHp{X<`u(SG@ARcF*U8LWMmP}rTBI=lZw{h5YcGuWi_cFBLaXF+FyZ^Gp}Fp==XOz7R#sB z*RC|%chC8&;$nT zW=f&NtYsQw^Ee&DWltpb zyMDHX>sr6&c13lo+e^{Yoa7QgHZL$Kz|CE7Y{}+|B`!@(>WUqh($6jbg_|KEeC3QM z-JWDCxVbTn+{-Szn>A@QX;0w2hTdV#orT}O>Ssx4kp6`NgiAwPXlR@^?XyUaqjJh- zIUm#30MQI9wuL*(`8aK)g8WdD9pDbE(g6sPr+ei8IhIdSCR+8>{~R^Xq{{%-zTPqr zD|psBm`vZiKU%)GAS%FpZS|kZNIaypaPyh;DNS9OeitR3;bnK??`E|66`aoMtRvIs zC2ZdlT6ZyCUFSbd7TLYvZw2Z^!H$XIJ^q5Gu5-RMzTC5OS#4oW%LATGmp(h6-M!Ow zw%hHC3%)#DAIz2}gbGfa_!}T&6cTCLM+!#<)W7sE-(^re9~_L?$+S7vBO4#%SVKe0 zm3U|E|I90703| zH7duP$4+o4$uFMrOcfsdus9}bQ67*H1lgApuJ!u|A5G^?Sf!ZZbs?=a@rm@u*I(PY zuB2qYlgRZUJkX7gfNiC`pU1Yyz8%{h0;jkg+h&5U9oy~&`qyGxbQFB|p3-{@T>R2ho>op6n8L^`Vqd1zD3K?f0gCA|E z4e-p>SBwb=)|iD?_n9LsK8y@vScDARu>v5D!PJLbsw2KuIp=DyIat@oIAg)x3ZB<& z2II-uA0UtJJzp$%hf(aFla`cNy|f&XQFAcqpv9ORfs5ybPnD@%xnOw2!^>pAWC`#w z%`8Bu(dK29f;Tl;4QNowU_&k@jw9QPMxjZ)!q?fI(-V)7r5>EJSm+U+o~I|O6_4*N zm0|6e#>6oTdxQoHivqTik^oY~lg$7Ts|nJG1Q1=@$Fvbb;^4If*v3%k1UaI=2Lqe^Qzt zQs+Iv`$5s;Hy{8kDfs@2z)1rkegmAY)@{F^e7oW$a~=#|yDP- zVfTW~5tu_>`Oopotf>!rDzOKpqO@l8pon1_gZ&5vJKRGn@ec&Td=RLo9ws+N^g$0y zYu!SAVDe)CCW3Lur9#pDU(O+J+_GnHhn+*azM+3oQFC$i7zjxvlvTuE3bO15V}N~V zA9y>StsP56I&L{~3$ChDS(8b!S&Pww$DW~mXy`?u2SKmK^j zRM+|$6)7U!#!`2QBzjuH@{q-T0SU4f02mgAb^CZ1p87IeJuxI$Kf{Mr-W(8R%!n7x zT2_^LZfW?!o(MrdA3F^Jzo$ut@K25w~t%Fw;9Xl zm8kEC#m~#41Ht85D(VdDZh0X@bY*g)prhM|yT{w5ng3x~SYScdpSwe4%R%n@IL1}^_?D@hOeE0V_H)Mjds4 zcH9AU%2fWZS@>VPPM}dfvRjV9`eSnZ*GJL(M%O6TId*^hHe`qd?4l~0Gy~X1MQjQG zz88T^57PavUD3SO2uZh_u8C1r28xis{<0Ec6{0naO zcl^%f!qEzuAZQu`oo3uV67DV`BZ393G3=NP;%32Abqt%&jw$TbRjrid#+;uGUo$b%6(&g6nF7PZBhn`E6N-w8PDJeF zuq8e{6F za=7R^?`f8DGBDfgBt4Opahbfh%mz+%Vpkqr;J_3te!-t2O;r(dTo(NGk6@Mq~V7u*|br9tciF zXbL%}+KM7CFpbHB{y=R2e5Iii-Q$lSOkkZ+zwXkUlywtH>CVkq+Q(@PVzqECWv8AK zWJg7(2IuHfc{>3|zRD}Qp*tU`)ScsyY1t`7%^?#x7b7oZDDM;$cO97Lx_C`n*iE#f zqj0&*zR@yKgcESvddRrht)NK@Y&(Qt71V?GfOZ5{0Cm>jMZyf z@M5oN>~&QCw;yL|WgS7$W2Nct1ucW4>hB<7V)h4l3d15P6+!`a2I(=fFGB`22Ayag~)#uXnk2L2Cq89noXvr)+T}Ri6D!dB&w4~Mq`%KgJ>Bza3 zBOhuRZaJ72Yjud23!)~ssDQ5#Jj+TmT4<7@vEhxUzb1(r{JVRbwd*WzXT9OPX)%BE zH~p>?f^us2}++%?XxGb6<67z1vCfV;#%deByaotBZ?lfp?*-mE}_8 zC5}JiRd714bJvN>#O2FhIS7HzIFK2bN{s(z6i4gzOA``{Yy%q4z{h% zqhU)b^Etv;(@31U$7IGVM6IgmuHX83gI$6mR5bXn0d6>AWqT@vLhzB;LlfAjGQcn$ zUGkBG?y$1GQX{7Pn7pKh=R4#0Owpfyf35Kz6|0Rnp!Y|Zo&0OXe|=!!_kwu4z?0#jPd~yVJNDC zADUs~1tTy=V3d6c2e?&+Tw0gz-6fmGQ+^np^}2LK63(-TW;P=j`uE?I&{k;=_m`rF zwiY>;cc<%m+jQSUyiHbe#U?Mum zzsj|mT7N13%H001X1HxqbrqODdB-K{Yoh>nvMs*;2T@|8Sr&9V7yaR&n2 z{wn2Pa4`xXs>EG=x(Y$q1BxZ3;I0_4KoLB7ab|&y!H$*q^qRpUHOUxfao4Sc)T(P> zV3H9?J*ap9x2hck3V{=QR9B_M+30o6xU$zgTMs@#h|85=1x3I}UZDv{qtuieQ{@3) zEiq4cyOT$+^$x>#OnD}~MNeywk}5@&Ii@id?;Rebs)%9us)-oZbbB?2Ni0LG`fc;` z;&yoq_`A77WNl|VA^0@loTol+SHP#AnkAiEF1PyMg7>Zp2|VWtaKWcR2`gJ8N}m$8 zMs%=@f^>nlTGRqiaLaC$?6UJe6Xw27a79$YjLBpqeBT%r$i=xLl>~R4hT7wm3vSRT z2{RTgehr%7187kX0vZQrFJ_`Ey9)ETC=x66-)w#it7ej=Dk(Jy_#Wn2&`KXb+q?n| zW}Y<+EplNovroB9R{+t16eS1phPG-Lu)#EGYR-1H8}pHR@T8U zxt1i8<#CW9Bw+AMiBvSCvf*{4byCPVRbi0hHlo7E%Kfhs$)QMggi z2&F!oT-)=>$GO5IPg=FwQ*xO+rA)z)A$7=&8I7??IZ!zkw3@BReufS;lpF~_$0?!E zR@$DuwLMT9f&|laNI(w9NhmR^L(^_;Nic&9LK4YgSR7=}#$qzVdLnt%4SJplv>+t{ zx)9lha%-6Mr%p`j^+Bb`DBt-+-a8t7m8~ippiHw-hRFJnGti&O$5Ba8^*VZUYm5p@A~GcK29za;wZ zGnb~WjI%GzDdu@adKFYpiQee%B@5r}daBjSBma0?h-g0R4-?qxFZYF(B(hr7$)BWE zY~++TKUbQ*yZpkJhk8l_OU0R+7q~|!hWft0XzPSMH)a2~^|$}My=!sg)_;bK4MMbJ zK>=a)u|gsgLG@x*J^OKiVLjl1S_ZSF!wE%YBhh+iK`n*i7}I>{8xL3tZ33jqN|jRe{}7L`R~6+4gMuC; z35S~5Mio<-VcLEl#6%q*Hq1BDZjNaTjoQQ-z#`Mp=*H!~p_?sv;f1O0iEx@1ct#bU UXgw@j)t$e3B^(9v*-rWY54lgf%m4rY literal 0 HcmV?d00001