From 37e3c65a0533b6705e51ce954dd5796998cb2ed2 Mon Sep 17 00:00:00 2001 From: Mirco Miranda Date: Mon, 4 Aug 2025 09:06:22 +0200 Subject: [PATCH] ILBM 64-bit extension support --- .../read/iff/ps_testcard_rgb16_sview5.iff | Bin 0 -> 98780 bytes .../iff/ps_testcard_rgb16_sview5.iff.json | 5 ++ .../read/iff/ps_testcard_rgba16_sview5.iff | Bin 0 -> 111602 bytes .../iff/ps_testcard_rgba16_sview5.iff.json | 5 ++ src/imageformats/chunks.cpp | 75 +++++++++++++++++- 5 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 autotests/read/iff/ps_testcard_rgb16_sview5.iff create mode 100644 autotests/read/iff/ps_testcard_rgb16_sview5.iff.json create mode 100644 autotests/read/iff/ps_testcard_rgba16_sview5.iff create mode 100644 autotests/read/iff/ps_testcard_rgba16_sview5.iff.json diff --git a/autotests/read/iff/ps_testcard_rgb16_sview5.iff b/autotests/read/iff/ps_testcard_rgb16_sview5.iff new file mode 100644 index 0000000000000000000000000000000000000000..e4f0a2ee7876d7f9d68debe4f1b2cd962f7feeab GIT binary patch literal 98780 zcmeIb3y@@2c_w)CQB_%8-F?*thBgvzfp{&;T9QRDvSHlfH3(*)cV)pC5evdFfJJyg zW+pUCJcyYxEqU+#pY?fz)TV!b#w#{X6Z_+M|*JG!`8w8_M#CN{0G zxhQO|g`2y==Ki>OEZ96C{UbgX*6s7^W|1A{H<{REqP)TTv1+2KA8q=RYV;)kt+n5i z{rAaU*ZMu#>smh>=gIzS<2>1aM=PUdIJjr{*5OLOS0S1i&RjKoLyGFFV%^rOhHpxB zvsVpYmZI&$;fqod@QK z7*~1CJ14_R+I6Y0+BIpagR8E*YWGt5`ylF$q`KjrrkU(YadjB=x1@OZKGbV_QsQG7 zmQ7?c!=J94RdcJu>SZdVYHr08#^uk^@?|fbMeC<}YXn;@pqkS-XiIS1RQH;M@b^RZ z_i9tE;Qzf2e^2oL-?VzPJ#2q#olCEn_$G>fG`V=u%CP#-s%*2>bC8%B)5wcfhrJoE z+UjCkiN&X($DH+eu?KBcK@rDSo8DyaL{~FDVPT_11!NK`NK<2NgukJw-m3SaVOE+- zCc_|=gKIRrM6y5e`tSIRg?Zb z-c-x18k9jre-D+c6(3{8O=&B2nAmB4L7DL8?2)j z&OAY$NvwWMo5iyDcRqzY3hf%6MJ&*Pn^+eA&V~}=9w)A-%@~C9bSYp4GrG8q;R|CH z^xF*VU%w(#-YR8QtQsMlbjjohmu%L~m z=`YUhM(v+52yVO=;crtJm)V*Oqk<{F-;WXV#Ra3Q!!x9Qm+^c z)0NiVFllV{uS_wICvnbx9vR4)-6V6GcS6i{g!rJ<5#GHVc)t*aTFUB|8F9)|iHK)t zh@Fu#%c=s@2Sg#ujF=hbdQpMt&i>`x0hnf1P%7jiuaY@MsSO1qHzbUjaZ=is3FFtT0dL@Vqp=IqHXFw6Vjw52u8YA-difG`vRm4Sn z2FJN_^N92~As9zko{t*6%J=~Vd&LJfoxm+ucH(U7mq-;<&8b-6AMk*u&V zHMq{xL)G5P1wq(x&DcxgelcGidb# z#zU=^mKv2R&X3C;kZxtFJ3SRLwWqjlW$Ff{E}_-}-BMRKbdsIzFSt$>s>cd-UER{O zF;f*CrY%Ty`xYruDVjXQx>TInA@5F`rvfcBYfA{;|H*Tvz`UM`N;$XoQ-N0fkaN?j z{Yw^2c_bKPHKLhUGMNEHfIKQbAHg*%i8$30x0SCyYfCI^7N;dUOf-*iea}2wNqb9l zRgF;J^oOq5MQ%Umnw7*#47On!J;w6kA&=+;J9f<;hX8Q{qq?P*V^eCifarup^`oqA z0AJ=mNUt)@q3c!BHdnwl7^X*uscBAn6&O9&r@)-?Sn4Gv(rLQT8;%5dq{3WcEn<~j zVt`t@%%y|_y`>2W^if2sE?%mWh~%p2Gx`7Lben@sIr6Xgj`Ay!y{U<63MfR6Aas8Q0CR^3*yyp}mTg{3ucsnWSO%{@Q!@rj1p zJNAnDN2zK~3#nEdlT@FMshJw{fP^~XD#{$)8u;2O)93Egh$SHDtyVeLNcxH&2XaVN z{jf~gWh(Us!5}7?QhPwM_Im71G8KqrIxB8Zc_E0dQV&RU$1E?H?}X>erIaAmuBwp0 z>D>sDA$LvOg5;_AvegvxHTmf=-tZazBu`11twtut5})89+sEsfEbU*D=PD--Iy|<7 zcR>eqY-cJwT~MwV41WmNjH+}DGhW-bV5cK5X&0!QZ%LjEcXhGk*=f0s0+{V|~)k(9J`B4H=6eWi|9<+&* zLJxXUsm24Ux`n8?TuBQJNvM(#fs)n^OMnZ{6Qons1XY?)eBvZephFvH)H$_0o(a_c zZ3z`HbmBP=KuAerNU`(tDa)MKXlzDr7kr+vwE=t@!;^@Fx#p|iOkRq9>XNeOF za6VJ2c@3qNGZt%<0tS~eRmc?Y{-W*pL^U&*V6Dgd8dE~7-_>YX<8>x(ynzs>ie_P4 z4Vo4FKlSdT_r#0na`lrbqOthtusC=z61T|**KP){qXiR?AQpU3hd>X9QyX^;Mbp7M zm@AXSHD0{nQ0JC~WphB@XuVS#FIVT2ErvU})aFBlzFoL?kZ2lw6p)^n6(!Ik2V1R# zXZvF)Q4%*YawdX&eu7|BpQuUa{hz7&kbNs0OYKu8Tw86CaG>ERuU!b?4%87FY>Phk z&t>Yl+mKVXrB(_*dF~kb1cR4tP_(`1HpE?7@^!sqR4t@QDg_3zU_>bZD&{L=r0EZo zKCQK(lo1XGqiO^>un~mrLg+=<@Y`ap`#IsCPlwa zJ=hdY0Gv~YD27SlL?E83me`ty1$o=0c7YnhAt#df*iw|xq*%*fM^TWvwOU9W9}+_} zxH&Ahj?n73+9nLo%z=|-kqD22v~5q*e1_;;@|;M}MMT$yx|cs53;u;kMQW3wA*6ml5VjtC$Te-ycMq?CR2W z9h}X>xqRO+_LNMkRk~_5N!UiX#fD81v~GzGMJoRWF9(`Q9#u!QTSZ$kamge+4)V4& znM6rI5i7gkL}A)SVyKyfge{oBm55{#TLrwuk8~q(8yR=m znT`%wY7(x8Nmkq>oH^_qF_8$1Gh0FB9!_layNTkbhppipYx?Zu@$j zf-sY03UG{~fFhjf7p|BR?i6itZGP6`q79oQtp2u>gre42%g-IjHCD8%C`xx&+(NQu z2g1JYBMc)^@Nhtd!)P8>U5&kORvRp$4GK>bA<<_;aOPdCxTCb5Rq`VpF7zqwJmY=@|Ux|ZLQ70qj5XI~oh>SR9=c`~u8yjD0HYNxQ425vW&ZI^vDJ)ThUHU&_hOi}I zw-rovh`S7rITHbkyHpYsb~=QUJatvSXqChb=0h~`Le&ED2n__RjrWil#C+lUZ30tjS4URO}mc3LnJzNHii31X6h1Sm=w zqE=+0t zB6UceI_mn_91KOfTVvTO8?M+;tK<+4!O8i_A^kf8Oo&)HF%k#_D6;T!Y0RioV!p-D3_={gm~-MNEj!G#rP-uJ`Yu9$UyB^#_G5f5ar- z5zxT_lRVT~=!H)a%9~L^&`b|NO0`0?`-6td1xpiJujJ*OZQupGtD{2?8j^ZG&=swc zyST*N(ICtxNJlI>a_m*Qo;9iPMwE4!U?SsGOSwb1xIb-26k<7`cTgZyu8mMppI+|ef}#!PQ+A`G1kXAZGYSw(0tBM5RUoF-DX^t| zjV-PvtgcidHz`>mMd9=8y*WllL9^Ei=;~{?aC)r^&7nyN(RSO*Aore8EzL-7G$6EyOf#j4WP(29Lh#Q3kQciUMUd%jl4f^q1Ikw8wqN6U4Vo-YQLFVXw8ZvQ`}(v2erB)qqFYF~(j9`sHNR7t8_@3tlG$+j(aw z7@>WD87b)NF(W$EfG+0y1`UoU^Y9j-&Ls;l@w6upQFvAfA4E#6vj)P^#Jw{SY9C2v zqym1jnAb9{A5enqy_qt^n~aJ;RE3qFEaXU3gC02C%P$HwkHWWemWR zqREbip1?_7L9eE%LlMiM9H{6eOkkj>0?ggU?W+p>2z3f4wljnZ{();tq8NL-mKt~Z z;*sc!9l%BDP4b>>sHi!Hj-YKdcS>$CZq!j!*aEptwh#t9-H{OYf$-yDXJdDXYlDn4%MTmOt1f@0c=dyY!k1&Fa0g*_ z#j%K@Y-u`c#RR9U&;7z_Ub_j4O45$g4QVHzRbS@4jn_M*ZiIOc#~unuPrLY_Z^D0& z8#{dxdhHWT0s6Ye2GpY8{3we4XECMqi^LkVv1BX%vcJR89OrT3)}ux7YRyAv%X)d;jm~{mI0?E5}?)`K8~`P+3ty2-KY1APjgeg@O6}Xe9hN z14UzZgA65vD7X1Zi5g@E$O4+UyMY)mv8&0S$ZLBIeGPy-rzNb0?o<#?NffT>hR#g; zq9>Vl*n-p71feX0y@OAqQ%^}WohaJ%Vs{ID6DdER#b@5!8oV_^A*F$a;4wQQLBMX* zzF_eb4q5SqA3XghxYiXfp|jKxcKRVx`V6QL#oGJW6Di7EBYucQcvJr<{@*%rnEPs4 zQDFw4NoElEMP?no$e;*28$-$33HHf+)oTd8$ zk-Mf7Hj-o4y71+pV0K2Rb_Zd0xeaLasC=4E8N=97!_=gsDD>h?hghA^8bvaXBNAyR zpIBdzxDN!$T)r!&Ni?}JOUT2aHTT@!qCNUNiv2#{!z zIM%vhZZ+!jCl4}j3~|R0HpqqX&SV7x9W(8WI0sINa3GDXYg|*%HCBexk+jaXfGnVS zyV8jOpta)%XC>jhgq`H9y9E^A6uOj(mWyM1XV*IQdYoiiG{-|~NV?pr7 z0<(QQ$~FO-O_23O;YKrb6v-j!SZJlHz_&`3E{d&q_)ZO|DP+!O8frf34CrzrJ9NrM zJuSo@M2*Awg~I&&LKouC_vB_+zlese^DRL;McEhQa3_PsL3=ii2Iq{#f+CH5V?(4R z(M5qVq=V39T-a0}WseUHr&mgO#@>|Jky;@$uf;%KOX|;Ssc)D@YP@#Vids!#K2QlS z)DmS|ffkERIK_{m(rG3q6BCfop7R!BmQWc>q6AC5BcBhhkN44c+p(v|Z>tyKnRaj3 zaP29+Cgh>i`ua~{@fI`{in`@Mj28VBx>NC_GXoz9)#$*|0I-JA`1wIlwCbj79n#dWGS=7{y|dOs5?Fq z7JYTcXG4*?<6zi7WHHSfu{`2X+;3RllJ6fEM|a4Qkfn7v5=xwdPD)hmt<^;+p<3Y2 z_YW#5Sd?Ljw~&rWTi{wPKmV#sX&cwg{`*j>;&-1DZTyq^T&=o51Q zXHUE-`eOf}ixnE4l#d<>=3B}|zgOewwQ!e!etD58Bx?md^y=1FoqBMKh#o`$3d8hJ zgwB^_TuopUcx_@6@OO~3d}(HjZPX%*!4I7q2&3JQMdDCQT-ZQpi`g;4q{7 zw>)5aATGEz120UQ_%^(Qtm`7tLNLQLe{_xHJ4n)k%}}*a=4<~s;51bZ-!%8m_jQ*{nHDIvnR zZ{m-`q>z4V2SI~k%P7K@{MW1pxK!`7`T45H;6I!1ADC@&2TxeAJ6M_jv@j7>fGxs4 z$pMY+Zd~-!rPp`{(mgXMpHa2DmD>k1QI1q}n=fLkkcUbk)3HC> zJkTN+t0yqLBt?X*+e$Zq{4v;~8#^H%NzFmeh4F*Ca(ljSU2_N{PC*e0W?xMbeSs0J z9gJ|Xw0EFEQnO;Rn+FbQ`bpeirf9xK{e--b*RvenpPK_2TH731Ms0I&Dhli=Y-8U+ z*iYUZg`}B-HD#|nW^I7H7>Bv&5JF)M&?B$4$SPTcl4>I3*|bvtU%d4YGMuVZi^e-f z7|NIA|JHNW`@>PIY5s=5Mr)v;U$@$n)|gPYw3VWhWXxVY=vM)xt6dmzke!TpW2yB} z7@-g&7uM*Xv^9G5-gM`|kfV1{5E@K+tp=0q&YbE8l%r&hfZpMzoMOJw9HFtp6+L*E zp)bwB@G}WxeuacPO8_$4OMoNm#`0LNk#0d9Vo3I2gpz%M)X>}Z$t@m=JrG8+vhdke z7WS*AJXfJbE?1gicTv>2wu(iBzxV(J3i82e1!)zb)sUYkww(i$1S0n^*~4KJjEG)P zD+Cpcc;m!od#K{Z91ZfVpbW|Iap!1)`k8}#YhY4r>v3|^0E|9v9Zky}4&Kp<;5))L zJW~g8(XK7eRgAuHNAU>?(nl%tjv~e#MpAi%5+)O!jxl?jU!yoK{LrHTPh z1R}S$`7^~H`23ZP3|#_lTp4zY%kIsLTzt}u=$q{LEpO^WpcDI+Hu_15X=$@MLsft* z!ho4CQ_gdp*im<};Dj0I_F(Jg8B6@=L^VrC7Cdz{SW4j;5U0Jr0${He)LT7SyX6H)pU2I+HXfC&y7r;z)mP#@<@$sbIfqMHI`lqXD& z(_}fN0#mxTumaUclEkslT`FxbCTDeq$c*dzYOeeYPrqUS#s$rGI(SNNiz(-VWlj(8 zB=9skZ7S*jQ~6U{=3pZk8`H* zz_wAtVrVP>ge8Y3mjw>P(rmSYIj=@qt=fb>Fx=LEh6)IJI^XbgeaX+@C|H|+E6f_R zuXEnk#?Fb)W{kX_R2;l6dCq!+51d=WhJoQXl=`UqRyMQL2Y@1D&$WcEB6h_N>g(IR zusK!Lma#m?(HW`%gGlND;3#zOYwTp(9c>V6>pp;I07=;dFMyY2&No8|9lWgg6gqfz zm1XPXb#Ew@q;{SixjCUc>o9nvW4iDGJ_Jov zte^XkKia^v5Xm-M3?>W6eIREcu9qU~-~%*n3tw)J);{VK)>!qNLe0m6w^=@UCD;i* zz_OTur_MBeU+@Wl&sY}xfR^rfLYRT?R}9{$(Y{Fv3?5-7{I!lcC1}f|VOCh3syR-o z$Q!Jdx@YWB_Zjw9@)*0pDH5;Pt#*CvyoMN{P6X`@Am7qjY0pMu{J9S{lzLy%2~o&3 zg)382&uF3zT3oG^2OS!{NN~pyzewS-=ahtw&m+mpH!O%{A5KH-%bsX$cFU#gSJM0o z?3C;2*eTaxbC57N2z|?Q4zSzQJJx%fx2gh|HIIzhQF8V1M1sXmk*TVE&H?sZ_5r&H z+vl&?P1r5jGj^+8A3OIq>^8wNcEH*oF<=GOLo#g<*MgCKSSq zkN7}`8HN=<04mT^zNVv>#?FoQHT2{nphp;1d=y!_cyd|bAT^UyVYceMz>piWGsIhV z$d}wIdc|i`mUQO%o0@DzZ++KC&lfYmHo-FX%sM1Xb*sQ~AD4MZr5tf1`KPyW=ygiG z%!{A<7-ZpA4e1jO_zhsxf>QaOAcUx0E1c&yi1-!k73wX`{jh_#@VNh41q(!EWogwT3+IU&Q9r+a&lf9ZUxero z$SA-jDp(ARUi+tle1v*N=HR!v)`=JhDe;7^onNapgqr;+VZd*fYE5^Yg2aF#Oa+$k zbw&UKXkiQBG!5XbNn7x@K&AMyatmh>dhK9B;Z`#}y$eu;qr7&sgNE`IP&!abLY9+g zJ&Oym#gE_;D*)&x$TSKXA=TP|943`WSmLJ+gur)z?S#-E^{WiO0G@`QzC|!23-8+} z{QNb}JLpo5Upj=@n;eM_OqW7~%49J11eURv+}Lp1A>p@z(gVx@(&D>7#=v003>YEG zKpwgRlmV+{$ZIm73Rq9HgN4{4vcRCaG>~^lK1nQ~MesqV4l>~*m(d3y>=eFhh$!Pn z>Fpc@)3kjcYsuO^Fkv$W)`}({S~-#L1r(ZeSV=|LS_h~@=7Y@I{faO+et{Ii%=nUa zcZu|MIw%DG(g(n=DO2H>Vbpoy6UH9v8GTd$?UY7`u~+(l8Hhf}7*NP2?N->ufHhv9 z0a8$6z-H)_Y_NcNNGx`dBThR03*zhF~VH|Gk{6^en38O23k4JgkRKl2tO!**9m%>Co!N3$fuk( z_@sc?BC^neZM4J=gwR+v9yg|gluO>*^DxLF(?LN>SNP<7P_Agc#Idw-c2LmFK{`rw zhHd=CxhR9AJGE*h#V>N)>4UWx*r*RI!-m0AuCi`xpv6K_urVE2;=8wct8I}&lsW8HEfn_Td|)fO zgSG?e zl=}e~SjPt;sTn^-j+Fs(Nh@Rp{22CwV#nYt7qmp#$9kq^!#c1`tHGy)#cEKH(iQ#~ zd_cmr6o8Ayw1#9uG5)w3 zN{4dx-C#7~Q^B_Cxq#4>{FXjo267*SX%`sR4wV5D#QF@#aK=D422N>|^_m5RBoYh7 z2piD>z1gsOS@m0!m(A?v=lu2O+sBXKttWgZ<05{~z4MRMvD!^vzAEnq$D!oy;H-qk zJFd_A+t>|V3Ez7sS4w}B7ibUHzNF0Br>>V88>Vpij=rr6whBW3G;7177hwQa#%~m6 z43uNWc_@)aMb5rq33K2ERvs>;CLG~&HB?td`p|*aaTLatXB6oD!3;ydtuO;aNlh-Y$D97L$W8uA z@Md;54XXJ4!U7E3UXg}mCZk-p3L-eiWOCz_DLO7A zI5}esFk@9S;u9&eGCgAo(BZBPkn@-DoV+G6bpsfOnVPhKvP{KVnv5t!b9f8PLo*=6XhjWAB&Rz6ZSL5)P=zL z)Fq&tTfPlY&NYD zgH-;T@|7TI*0b}KPsAbR>B^57<R^Fn{frYwuT{5Po3 zkBylM^@QP<&tc_2a*&?o2qaf;xRSt5c`=e(B?*V+ic0L1m}&)I4O;;b$D~D2lO7#I;ufYk3EXzVn6et?C&~^`C0Y4oFymH1%u~8+ z;dL>hdJxZn6O#~u+?PcCJ1+c@rtT$?=j-T{?L222h}J_VTqJaBFNr3^ z@Ndjn1l7GHw&XEVLG!os6MN|o+Vw~LpP&Vq-zdKlzNWoZpyTp4)6=-=4;r%O|Fp(! z4b!@iOekcQ=c~(2G50hloprdLs7N05kM{{_nh}7GpDKC!<@oK<@Kp`|3YX5o_%8ot zqWM2*Seaydka!^(76)wp;*-|DJkesdZS2Mm-Zza%ko&^wKy#X;hX}BQK#> z!}%?!vLuY-Z^eZ+`qoq^p>go4`jTG#Fg^LsZ=$YWvRHc?{<1ZC|DY@hBR7q{`Bt{c zdQqF44W4tr)#j(ohPDZewM(Y*6RssAM_kHJm~*>C*$CL%ZQ3PM`3d7l8@!L^8PxZm zLy58xP_!A_NXbU{k#QnF8&QH{54bi`vJrkJJ=RagMq58qO4_}$lG2rJp4&R~cW+(u z8$sHo4SiGJ$LV6D?Jq6~T9xdq=dY38%yA`$ZO2X3PivgW&yUYv8)2htBe{s{PZt|y-iaT6kknVLE~k{ey7*yM zLw265zv#iyoYg5MnKrmhR>IGd7XDgj?O*)C8OPqGgp!}Oo7yE)`3d?_e!>jfZfcj% z+QQGt`f5Y#YR*`@q}_|OnvWwTQ9o0)5m0EGtfW*+7prBPF0Gd9&&K>Ug`c1e^$cd8?jA$wP~x4O3D*8mxPg(pQ2=A`&WsbpU-uEL@lw6C?S?iF}^HXGDWt5@Wwol{jp z$g=R$(JS!W9*0VDp4&QS$svC_qU0xFm%Qg^?6%|Dt5#Vu zRX;^8a(*bw{P?dkrX?90Q~1f+l&+krpH{C9r?lpr^F!G4Ui#r8=Xsho;yB`__Bc`V zs+QKA+ijv+$SEbO-P&lYr95YD#9#R;+QvmIQqGvJ;e`%6#|gP0R&)Kd-PA4-MMb2v zKIi3QU$VJY^ER_`6;7_+?{>poiHabhPai~q(JL{FuXRdQr>66^Kh@wBPsl?vmx!)jLbV$TT0cDN6WL0e-D^8@f8?9C}g7 zdbqSr;HO3SS0KW*$qN#{6W zK04=iNf<}5pJd5K_~~YqzZI|EdEP($%==f802wU2!aMf{`z6>WdscQ3mC##6QE1bxw1eeY@S*!lejya;2}<6T$MH=MbExCBN4_`SrkMGl3 zz3{r1e*D&dg>UrHg2}tSbHQKVcM}&h6~2~l=IYblaoQsfNWp3|BU7NS^Ix6A0F7K< zelmM?mL}OWm;?Rz1-^rkfNc4-hqs>lqpwC%wtc9n@5DD>DiC6zUajf|KTbeA;n55( zYMMoSvym3bcUk(!*XXM}>6_iWfWCzgR~s!E8T|GsB4Hzs2zzt%>FDq^!Coz|Hp7R} z2;VFv^z_kW(%}2m2pbnQ{H134WlQ*0MtZN6A|`{s>}!b|(-+oaT9}EmP>mMOJ>@_B z{$0cZC7q?Q<$^C>@U-jS&G;~T;%edM@7?sg2mjB+0*a0vec;}?D~$zig*4-5(oy7N zZLKPN5rh8r&i{jJ z#Vjz>Jif|t^^G5U>5aGkE5g>$Pg_Km17F_aUGlzAn55iDzjtufUrCvtb>5kYSr-gVdF?q!Bv z0qgK+uenov0dnYx3RnfXH>=3E+9s>;_c$i6(AQwP{`ku}lUFeFZ7<$=|8KthBkUDb z#`d><@fF{E+VjDJE~6mt% z^W{ta;G?&yS6CS+y7r!LzeK%)BKTl=aU84yG0Z|?$tk2T(2=aNnyeyUUv0}6FQE%t z|MPF2`?W(V3)vpFpSb_}wdwg{Ho^Yv1CoyJbDZ$1#sq*dUo2@(C>>O=C7`uusr% zZWH;!Z?g&SFLWtpp>PSnZNKc74jq5_N7W@FiVHq|(FN)frU1FU`FqzTm+-HZFLLT^v7P`w7UP zMluiClc`DAPjH}--Gsgnnbx;t5zKAN&rM$Po3DP1Eke*ywEeW(e)k)1eiVb~YEX@~ ze*T6_4?Xs2Ryw}spEZJ`*9|wyZo)-sk?-H_tq6M9P2ifAMbV+SB>CK;~lNY}AoR(Pj$hX-e4Vwbn3C@4Klh=0MHUBU5img(iKi~OhQ9?lGld#Pe;Gn7LO+WjqM$<;Gk|peo1KT2?)o@eL`6}* z^@|r>c>S446v*wzzjxic9z4h3^5L5{k~va<{<=kO5gtC@NWem25#wQ+MV4Wa18E;2 znXpCV$i=F_&XQRKLP3#ugy};kkU`ssD8nq0*q{TKPIvq0OYeB^H~)?5fxo_f%l1#) z|BbhpMV4sG*m~<1&OY>nS%eQejT9=23>>?j~>3_KOn~aPLWE(kE3gSKjvReBHgrxh3Bw$i{1Za`M z_x#|uFFpEj2C2z~*pJZ_;V?js;0J8ns2$E```5=J+F?&*hq>6M>V zmxwMd`0zy^^Noa=TDbYpb;Es z9C*{mOc$h-YY$-~Ih9NJ_rP%2qIo?PzI;f>B;*wTR&x|Gpqr9IxGAv%mlTB?c+f#+lDiV+Bil?+ z6K_g{km!@`|Mq!j{jYNWj!$T?PqyCnyVw8fLyZ0m6p>GEz2VYpAD8=gZlyORdg3}q zI!2%9Sao*dYUXhL?52eG!6`3x5&G5B&%afDas($V^2voa&|L}AO$Crbw^2}k_$c{C zCLm#PFSg-gsS@Hzq;-@>J%X0R!1N4m%2r@nl=}}{_(|R@SQzY-o6IRFB3tl|a<}d%Y80A?5fGdL4(!;K=pdf} z!lc~{k2FO z!BOkV*~I{J`}mv(ww-+i-AFKS40iWQebS*CgC1*`DS9md)MV>5f1HPo z{*0UyX=fT~XB&llz{Mj1iM#Ut;$DG4r>TCk&o0X!%fU9WO7oP<$^dpH>>=r8UJmTC z`GrPX$wcR#^1Z*m>t-Gcsib6I@Wt1?>H0GbBv_yu@(0gJ1vuH!y@nNFe*B7+qMXID zKyv5MbY|3)Ga(4b8wnW4ra$-nfJ<;}dY*3wToOdipTeTufJDv-#vq`;E{*KkOSuMH zE`~3=+dtm+3orPkFTMRwc-g~aLiD|7+b_E9V+UUMUET_~2+Q})IJkXa7q5iRrdIn# zHJu=@e1MC%)qZ&?LQfXlYJc{E9a_!c*;1^Rm=8>bCiKpoz9z%(yT)j~-rFp{=R*hH z`#-;r2}XnY`u+9t@BHAt|NET%aP!|#!D5a3tViy?`%x>v=-B=SE97_XA}`nBhbN>3 z{UrH>8Nt-)U3N@T)r38r6WwO=b3pVJdGina_6I)x zz}+aKpIm1~=2zzQwK#s-gGichaJ!%jo(@0H^N}?W!_(8++hsFA1A5mq@)08fzjEL6 z4!rI+=zPe~_BP{3?mhe3OCMl@l#lUb?ykkl#SvE2jC=5nbpy+U-542w=tedLCS;!- zpA^@Yg~fmWw#Vr88AXp7Z@cX+ulqET2lN0z9Buv74d;I8g3lyEpof=y_kxcyZQ2S& zvL2!p=bsc<%c96d7;6q=>1jcJhJ8f85f3Nx+hb@|)vW@S%F?Yr|FmDh+g@0I(1wce zTIMsaed3Q3Iq3ba@4V^$o5aE(2dfyp`2TJ!(LxRvjCWm)*HlF={Oj%gqjU659ack( zJWJvSg*d>7h#AEDKYaGpcU_fiw4ZGB(F2#1Hu`qkM&HkDMCkEyv)YKs&25CN%*YhP zMrg9OjgZ_Io_^~KKl8T4&HL-6L;w7~&z*CNfFv6&EnWs2JzxcUo26!-+6Y9^FUZgf zdSWB6AUU9gg?_BQ!$$KLyyu(OTykw>Wd5etfAFubENt{U?>Ozz!bWv&BbW_u?wO60 zk!T|@LN-<#F(1)5xvBWqQ0{x~fs6j`pro9XGJfPsXW#sYEaZ$9{b3{AohR|UzaEo~ z%r*R*I!ucCiliehVm?Y2&F{YSzWrbSVR8|a|Ia@2mWw`3tE#(b+ebfEx@bGL^~^<3 zNN|zz5nTj6=Ezvso*-Lt5gN5j(<&fDORLZQKfdvSN0U;-MThSHbRt4rgjbbP5f%`4 z5zyx@noz-NlT3sb9VWsu+xz*K9{!atC&}QoVQhxCe(<_P5#Ela7ZKhedl7?25p9QY zFT$-G?T2cjSLg~Qdm_f-bu2RxnyhD{<@a87;FAC8Er}XzJ=Z>X-{;OI69J>|MR$>j zxIp(J*r@5>Ats`YSxkh2>3fk*dEu=O{N?}k)<24jEL`{MOTKzU+i#I(Q8?0}$=WtL*etzw?$%4*^Dhz+*m|yg z=Y5~Ml#X_u15kq)SNS)#p&ZNx2rBe&6KvG&Sdg!;i~j~(fF%6MMk8LxfK z@JBC*jLd)SH}WIhc{tMjjvwjz!pQte+KYHBv7ws9xy$Bt{kq!;=-6xL->&ku4 z`Cl&hb$Vr7q0y1CmX?|6*M8QHbWF}c*ys}%*pUv<)kbvJEu5;2=u9Dk>eUDF`(wN}`jHNP;FnJ6 zNT(p?FMiR#+x5xYSu`IaIqVs4dEISa|NQH|#x~-j^Jq7^@p*b@)ECiUH*yo72uRitu>&^fpg9*1H8~yef#cqT%HaT|2oOHX%@QqY2=Q|&v!K0G^>q*KPZ~k0 zKmV~`v|A&_iW6Mej(Dt&LmgJ%;3Kq}10zr7P>1d4=b!e0aBIZd(KD~T|BqQdjGTOw zZjFGQ444jeXp?V8XptZ4&|+3JtanBVYun#$|Mja+*%{Z~?f>s>UqA3cu@Uoe`l#M| z=*H|&hoWF3Zgpn18|mgBI|>D!mJGWQ^Rd>U4u1Hn=l|hF=>>*c%IjHE*yS`0u@+>I`_-H2z5lj$?ge*OM?!mSZxe%fcgd(ofLAzyEe&Kz(1 ze7ZGa^kdixHVEjS}v-ii_oaG`Lqhi49iRZ`jYI{=oa3M?AC~xAQye&f^eu) z7wK-KTBHE3hU=|Hp%|Kck-;Iu7H~RfsKm7l_FWCt9 zMu)z1-%~!|hq|xw>vRuX`RFR1He?>Khsiv^gBIw`kv0kY5%m~g=JHBiPdV9k!NvF9 zd_wMyxCpn9H@*6j`}OXKi(rv(cf>{2D7;eF>zk2$KQd0@euP$Z{f+KNU&XQRxd&eN z>)GAWm;9Bw2`w96_*4#+E9sO)(q$9K)nURPb-hHm-H&a9}x*gH6&dH${8TgrcJkW|hv!Y^p;jlkw z80zlvmfyVQ_J4n;-5ueFK6a6jp7u$Dy`~$N@#CL?dBQl8%{?P=s60WF+bs z_aln4{iulMYjE>|XCHXsZFYCm%-2WjrLVjSuhi|QC+d0?O1`Qu)xk+xf^Pm=9X=8= zUmp(lM=0pmcZMAaznQVyjKny0kLNGC_{dl87b7V&9PBJ7Er{Ogj>D;4gU#BTzkQnqFMx56Yy7O>*CJZ@uXCVkAI2Mmy3k>cOsJ zv|=PZ*m;o~Ng0Vd5-xK%?MNWxEHe^=IBT@Mf9Z|?;Z}Re8@P6jw`~2)zqsfLEQ-7% zq3F!<)?0l?5<+(2CGYrR9d`^nk`Y2ilJhWmtI1#TrlHCWs9iu}S$^cXKmSd?KVov| zCGW4uOWwl75kA);le9KlQ99QtIoOf(C2th;>cg}nrI);$Sr7!|a#DJYE~Fjh zsvgKSVp}cAuc}jatn{UN2`Cri{m!*Yy3raFC3w3~nwXc++pPRemtlsucF{5`>BgL2 zyXapek~2kLGf3t6g}Xz~eSVeLxZ@IO5;|qQWK23C%V$s~GrwePTnL3x$&)%FWVo81 z1sub|{EH`jdMb20g6y>(2d1(FPj{fr95%tcO)QZ%aU3cMC}?6u*lUhGA@65{m4|aj z#S+$buX%{x=1!h#LJ7ABV@OOOZOVNCN=M?Hh^OmsqqJZ%Q5iKlMg%Fn+C;QU8eCYf zOvh0Yb6L{IJKQXL@FGy%5f06K80k?vmvofz%y?(YvO=j+3Fp1kMM+m%Nx3dW1)&#z zU?FQGS2pl!0w+Ub%-xiclR?(#DsgS7R+PXrTuEpoqhpd{5&)5(1!4n4vbyD-0o764 zWJLX($W1bnn}ot%bDXH4Kl2S>nM+he4iwMqh)I|TTPM^X-WZbM?s(-T`C(YvyiX+q zGQRwJ5Z8yg)VhL#|GfW2;jJ%zNb?iZV2Jr!H1YJ`}SYgvH(iVqe4y~E+Y#$JbFBAe9 zj8QVh6ar=#))XlTV+>k=wIuc`c8&rUh5B{CaKvL_+Ym>@qZyU-8oVOt8wZt`D=hPA z5b;SnAFUFnL8l)*AU*fltQG_IGAbZKF*Fz$5EN@ zAXHLjzl=+YvjvS|=OwanDiMPgY?Z@oB0@`oT{`42g&LECgZJ5bNgo{OmJtO(OgTN? z_({+cb)j?wa14b$RwGL$sU)XMN6IX{)VWB3Dl7mUXO%Y0>Ny3_jNAx4Ck_ z(h}b|mdqXM7L5~e;}UcmW}-nh#%P9rU}B;M9xSOEv`bp*;x@tOKZ`6EA(60ylm8?0 zhLRQc4RVGp5ZEP(@S(gv8gNOrN$f1=-=`AiU?7MC2b%a;B4b2W#0PQdlyO=mjiTcW zWq7@$k2csgXzGC@F-Gi7BnD$JTY;Nn-k)!XDV!Nc6sNRuOL=o9n3tJx5PU~T`zSR9 zca{UbvN54ro+;v9vr5Y)QG`E(5eRl(5)V|!c?a;oBXb^kP}6P?R;T$5#wg+QRGTNk z*h_0=dkoc4EC1uNS249BOs;suT%icd%=em!tp(j2%rriP7^|IrG_OiP$EZ=sul+6xGQD39Qk2L##K`;+baq~Zh*s=6 z)B1dS6r59eFw|)wXfs1nD3}qh+B~#MObVPOqQYnECAi1fkIjOh&VZQoQkFDVdbl~P z5eZ_#)}<%Pq7809Nrp2nla;cYE>IeTByED~mBc`DyF{+sJW?b(kMZpoE{vub1TF-5 z$xbv#BF}WtCUe{?^j_hUExj?`W*AQ1KB0H<8@WFJO`nQGVb-N5b|9Ly!Z$(1z z;gU)JygofU0LRIzLmXj~_6CE?rRe;TO|3t;!}_FFc!MGhGx%lg!-H}p6x`+WqQ8Ld zpsV!?E-2NyClS)@=FW_teFKD$DwRShdyq2vGeNmC&d6ZiE?*{+%}?v_*eQR|N(iaW z4-|CZl@XLSMo5!zGy<;zYTOL9rG0y8>CNh46g_44@|u1h>A zz<}9k5X}7Cbq1n^igSTgKcJ%N3W%OT=4FQ>9}F56h>BigTaWXJs$vb7PJ0|ur5Pt0 z0M(+Y4TPtfo-jdkACEK3osqaq(peNG-3Y3XLt-RLDiuJ~N8*4Of;k}$GEr-?bb?wRYu7SA2;7b$2Zfe* zPSdibv_s4J>RkKwp;+<)K2rD=Y#BNh)Lcs@v))O*JbDTZaArGQjl`uk@sK2^C4!Av zj15AXBX8OIKpEl%lpM$T3Q=<`tVV>YI4_eaGtSbHLx#fuJ{&c6u4r{djoWP{>2SNs zS#mS0j08E)iBNICv}E`&A;sFNUSaFj)`ugmiz22|qht-=N29lyPiPt!tl+p(w2(-7 zl!^e%J8>J^d$Bw&0I~EN=}Zis%*!I#Kph#+(xJy($9stc(M_y4^;F3XFpFHrtpcPy zVB+Z#CQO|<;A%?ak2)DCmuc#!kgKh&w4#WXmo!hGy2917ghy$FT-pwvb(F@V(WNsT zrd)k&-VovYxlBC+&2-9QtALS1+{-+mpre=TPjx;ZRrB(^eIwM;d@j|&8-5Yz6%v(`XI5u)s#p(h2(}$OP+#e zV<_mDIYTf?bHn}>l4fK~m<%H-tbA5ly;7$tllkw%hKn^k#Kuu zu%wIc%M(9dZ?zp-XJODpd=|;dZ8H=LI&82c$7@0ywy*@Rg;=&dZqQP4tDr;Li5Oq< z{z1*YjoqJ+=HZILtrn689Z6!I4`n`Wqd_$5Q5u1y%E@(6b6&GZFiYo?6LoSYYdnRF z8G>F-Yc!%silF`#ECJjN$yrDfN`p}4*a;mw{Y)YMGFg0)8m7FMOA?@B7Q{m8%CdK%DNXrB=o`J|u}Au}MRgwD&l(TM_2PL@34XJI;~n^>v3)ccH|gOGF8Wr} z>O6cnb`GDZ>sMM-H|JWb0iL#&f%eHjFP9j-LQL;=;@um6uCQr(i?3m)GeFefd)}(6 zt>j>Xk{u{{4X#dC9yDBpcgAPM|-Em)o8hz z?c)s_uCMTdJAIgNg3nhGZTpaS*Ej^HLv+f+1{$yJ#en$x{L>GOz%jv@kk zwS(PF&JERgSPV=L@eaj*3Gc}N8 zE&IgX#omO4Utvw&W?tyI7knVRT*|Vk7f)yG)fMK27-8Eb*OaF7!{VWnUQ^#W3k=Oe@q zw-`B27e>(PEVn&Pe}!9HQfvnrYl791ITFsu7v~w^)Z}#08Ox)?C;5^@NfOO+(#RJv zCSSb9sbI9gnDXx45V<(3I*0=-b|rX?*2o<<5{IUOC_;H^tMj z3~)eVdphZeqb^SnQb@p&pCZY0PpCw+zN#OVdiR85?ztzt$Z1dsRNRE;#4s^s&S$%% z10+~-GaTd0uChGnVRb&!Kqo8A5Yxf?!sAv%`ai|9lfW=|nHDJ_&D{B@81H~%(!cKu zQbc+u%CJnh{)EE*}ZU?So8C|54xuT@MD5HWB-aPX7aU6hH zPb@)3lveW<<7Mcehd~rX-BxR2=b@?^n*96f2z=qJweq|#;;s|wGHNQ^x24!*Z~rD( zaP^Wcbo6O;-WMx8B3#NJ4`9pMhi?p%&GUrf?=3F4>`7iJA``6eH0b9Ivh|Wy3qCGUn)yii19wFauJ|EGq`-kk?n!XE;~2QBgf)LwEaH%LVn+C*O+#?)^tIl1N=tve*xOHvmY4|a?bp+gSR=ca zILilGG6R{eFp%iVts(L09GfNV-=>*eoW+S*o@TUVR5awyn7vGwP&!A_&m0W72Q+p_ zje#4hy(gNP@A>k>p>RRgSYmAFOtnVu8p^3CgEk0hZ`?pRoO9_9Zt4OxS;LEL6e=P{ z&tScE_@JX`0s3&XI29djuwNusOfI9v@CdIUBigT(hw5-a44=4(sS30NQ+Q6#>NEx8 z@U;7)DeRas!Wqg&LC%>VSuyEMC9x=n6ChM<*c46zzUc*~;3J{0DM>Ua`kotNj@b#4 z;8-*vOawy+CebnNlH)z9b~buL7-aptlW4%lp>QW{QfHV_bdA2yw2#zHKc|rfdL`vu z24eM{$4zLUY7gl`Vl#sMOW5WP(p-RTw`IDrB7QkZZz9fBR~#&oKl5A36$jx833=%u zlW0g&Jxueso01~)#JqHKl$euxx8jiXGu0zz*Idc{$ra9_KxZ~gP0j`gqN_^WVS$b! z-W_jOw7V5;MbKWBHjH!08V8NA+O4tI*ilj|D`0C#z}Y>l0+58$Dj+i*Fn$JO0 zWv`I7Vv|O3tm@_Xio49^D@^#uO_Cehg zs;90FdvhPMRH7C;K zUNj6Os4={OxrLc-LXu-jk_0_mHBWVV`qD0q$rX(^mV=~H79Z%;L+P1hTK zGLb3pKXlD3WnC~VsV&tbQXEVcX_Y8lIb%n*F z84j)*zQLlIVSUx`ttr}i)$mOzn!RfHvJ`C}4qud_x#93MiMsSSc;aC5$MVJbB)Q%y zUjCBB3?DdKIoMzW^$<;eFNBlb&4Cae-)*(Te0|UG@-&A{Tt7YeQkCFkYCd&s{`=pV zhaHRbs0aRspI5?bW0T&|#m%BkCN?#(X@$*2VRJ3q+!Z$W$IWBG<^gH*T)25c-n=o` MyhSQ+7T@^)1J^vS5C8xG literal 0 HcmV?d00001 diff --git a/autotests/read/iff/ps_testcard_rgb16_sview5.iff.json b/autotests/read/iff/ps_testcard_rgb16_sview5.iff.json new file mode 100644 index 0000000..057c64a --- /dev/null +++ b/autotests/read/iff/ps_testcard_rgb16_sview5.iff.json @@ -0,0 +1,5 @@ +[ + { + "fileName" : "ps_testcard_rgb16_maya.png" + } +] diff --git a/autotests/read/iff/ps_testcard_rgba16_sview5.iff b/autotests/read/iff/ps_testcard_rgba16_sview5.iff new file mode 100644 index 0000000000000000000000000000000000000000..44bf71899d34dce3bb669d13f07a43736f0797f4 GIT binary patch literal 111602 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\!Pl^+u`DurycwL^7c#wqYUltAUY8k68 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 24 planes composing RGB 8:8:8 true color + // 32 bit -> 32 planes composing RGBA 8:8:8:8 true color + // plus alpha + // + // The former extension quickly became a common one, + // while the latter until recently mainly had been + // used by some NewTek software. + // + // Now the following - as a consequent logical extension + // of the previously mentioned definitions - is introduced + // by SView5-Library: + // + // 48 bit -> 48 planes composing RGB 16:16:16 true color + // 64 bit -> 64 planes composing RGBA 16:16:16:16 true color + // plus alpha + // + // The resulting data is intended to allow direct transformation + // from the PNG format into the Amiga (ILBM) bitmap format. + + ba = QByteArray(rowLen * 64, char()); // the RGBX QT format is 64-bits + const qint32 order[] = { 1, 0, 3, 2, 5, 4, 7, 6 }; + for (qint32 i = 0, cnt = 0, p = bitplanes / 8; i < rowLen; ++i) { + for (qint32 j = 0; j < 8; ++j, cnt += 8) { + for (qint32 k = 0; k < p; ++k) { + auto k8 = k * 8; + auto msk = (1 << (7 - j)); + auto idx = cnt + order[k]; + if (planes.at(k8 * rowLen + i) & msk) + ba[idx] |= 0x01; + if (planes.at((1 + k8) * rowLen + i) & msk) + ba[idx] |= 0x02; + if (planes.at((2 + k8) * rowLen + i) & msk) + ba[idx] |= 0x04; + if (planes.at((3 + k8) * rowLen + i) & msk) + ba[idx] |= 0x08; + if (planes.at((4 + k8) * rowLen + i) & msk) + ba[idx] |= 0x10; + if (planes.at((5 + k8) * rowLen + i) & msk) + ba[idx] |= 0x20; + if (planes.at((6 + k8) * rowLen + i) & msk) + ba[idx] |= 0x40; + if (planes.at((7 + k8) * rowLen + i) & msk) + ba[idx] |= 0x80; + } + if (p == 6) { // RGBX wants unused X data set to 0xFF + ba[cnt + 6] = char(0xFF); + ba[cnt + 7] = char(0xFF); + } + } + } + break; } return ba; } @@ -1062,9 +1127,15 @@ QImage::Format FORMChunk::format() const if (h->bitplanes() == 24) { return QImage::Format_RGB888; } + if (h->bitplanes() == 48) { + return QImage::Format_RGBX64; + } if (h->bitplanes() == 32) { return QImage::Format_RGBA8888; } + if (h->bitplanes() == 64) { + return QImage::Format_RGBA64; + } if (h->bitplanes() >= 1 && h->bitplanes() <= 8) { if (!IFFChunk::search(SHAM_CHUNK, chunks()).isEmpty() || !IFFChunk::search(CTBL_CHUNK, chunks()).isEmpty()) { // Images with the SHAM or CTBL chunk do not load correctly: it seems they contains