a :jg,@sBddlmZddlZddlZddlmZmZddlmZm Z m Z dZ dZ dZ d Zd Zd Zd Zd ZdZe de de dededededededi Zdddddddddddddddddddddd Zd!D]8Zd"d#efed$ed%<d"d#efed&ed%<qd'D]DZd(ed(efed$ed%<d(ed(efed&ed%<qd)D]:Zd*d(efed$ed%<d*d(efed&ed%<qHed+d,D] Zd"d#efed&ed%<qed-Zd.d/d0d1d2ZGd3d4d4e j Zd5d6dd7dd8d9d:d;dd?Zd@dAdBdCdDdEdFZeej ee!ej ee"ej dGdS)H) annotationsN)IOAny)Image ImageFile ImagePaletteCommentDatezDigitalization equipmentzFile size (no of images)ZLutNamez Scale (x,y)zImage size (x*y)z Image type)1r )Lr )RGBRGB;L)rZRLB)PzP;2)rzP;4)rr)IzI;32)FzF;32)rRGB;T)rRYB;T)LAzLA;L)rPA;L)RGBAzRGBA;L)rRGBX;L)CMYKzCMYK;L)YCbCrYCbCr;L)z 0 1 imagez L 1 imagezGreyscale imagezGrayscale imagez RGB imagez RLB imagez RYB imagezB1 imagezB2 imagezB4 imagez X 24 imagez L 32 S imagez L 32 F imagez RGB3 imagez RYB3 imagezLA imagezPA imagez RGBA imagez RGBX imagez CMYK imagez YCC image)8Z8S16Z16SZ32Z32FrF;zL z imagezL*)rZ16L16BzI;)Z32Sr!s"^([A-Za-z][^:]*):[ \t]*(.*)[ \t]*$rfloat)sreturncCs*z t|WSty$t|YS0dSN)int ValueErrorr")r#r(;/usr/local/lib/python3.9/site-packages/PIL/ImImagePlugin.pynumberks  r*c@sheZdZdZdZdZddddZeddd d Zed dd d Z dddddZ ddddZ dS) ImImageFileZIMzIFUNC Image MemoryFNone)r$c Csd|jdvrd}t||jdd}d|jt<d|jt<d|jt<d|_|jd}|dkrfqP|rz|d ksz|d kr~q,||j }t |dkrd}t||d dd kr|dd }n|d ddkr|dd }zt |}Wn6t jy"}zd}t||WYd}~n d}~00|r|dd\}}|dd}|dd}|tttfvr|dd}ttt| d}t |dkr|d}n"|tkr|tvrt|\}|_|tkr||jvr|j||n |g|j|<n ||j|<|tvr*|d7}qPd|dd}t|qP|s>d}t||jt|_|jt|_|r~|ddd kr~|jd}qV|sd}t|t|jvr|jd}d} d} tdD]N} || || dkr|| dkrnn|| | krd} nd} q|jdvrv| r4| stt|dd|_ n@|jdvrNd|_|_n|jdvrfd|_d|_t!"d ||_#n"|jd!kr| r| st||_ d|_$|j%|_&} |j|_'|jddd"kr*zJt(|jdd} | d#vrt)*d$d%|j+| | d&d'dd fg|_,WdSWnt-y(Yn0|jd(vr|j+d|j+d}t)*d)d%|j+| d*t)*d)d%|j+| |d+t)*d)d%|j+| d|d,g|_,n"t)*d)d%|j+| |jdd fg|_,dS)-N dznot an IM filerr )r/r s r zlatin-1replace*,zSyntax error in IM header: asciizNot an IM filezFile truncatedir/)r rrPA)r rr)rr:r:rrrr) bitrrr;)rrraw)Grr4)Rrr4)Brr4).fpread SyntaxErrorseekinfoMODESIZEFRAMESrawmodereadlinelensplitmatchreerrorgroupdecodeSCALEr5tuplemapr*OPENCOMMENTappendTAGS_size_modeLUTrangemodelistZlutrrApaletteframetell_ImImageFile__offset_fpr&r_Tilesizetiler')selfmsgnr#mekvrcZ greyscaleZlinearioffsbitsrir(r(r)_open{s                       0          zImImageFile._openr&cCs |jtSr%rIrLrkr(r(r)n_framesszImImageFile.n_framesboolcCs|jtdkS)Nrrvrwr(r(r) is_animatedszImImageFile.is_animated)rdr$cCs||sdS||_|jdkr$d}ndt|j}|jd|dd|jd}|j||}|j|_t dd|j||j ddfg|_ dS) Nr rr;rrAr?r4) Z _seek_checkrdrarOrirfrgrErrhrMrj)rkrdrtrirsr(r(r)rH"s   zImImageFile.seekcCs|jSr%)rdrwr(r(r)re6szImImageFile.tellN) __name__ __module__ __qualname__formatformat_descriptionZ!_close_exclusive_fp_after_loadingrupropertyrxrzrHrer(r(r(r)r+vs r+)z0 1r ) Greyscaler )rr)zL 32SzI;32S)zL 16I;16)zL 16LI;16L)zL 16BI;16B)zL 32FzF;32F)RGBXr)ZYCCr)r r rrr:rrrrrrrrrrz Image.Imagez IO[bytes]z str | bytesr,)imrEfilenamer$c Cszt|j\}}Wn<tyN}z$d|jd}t||WYd}~n d}~00|jdd}|d|dd|rt|t r| d}t j t j |\}} d|dd t| | g}|d |d d|d |jd|d |d d|jdvr |d|dd|d|jdvr|jdd} t| d} d} tdD]2} | | | | | | d7} | dd| 7} ql|| t||tdd|jd|ddfgdS)Nz Cannot save z images as IMframesrz Image type: z image r8\zName: z zImage size (x*y): %d*%d zFile size (no of images): )rr:sLut: 1 r1ir2rrr@r9rAr?rr4)SAVEraKeyErrorr'Z encoderinfogetwriteencode isinstancebytesrUospathsplitextbasenamejoinrOrirerZ getpaletter`r_saverh)rrErZ image_typerMrorlrnameextZ im_palettecolorsrcrrr(r(r)rSs:          rz.im)# __future__rrrRtypingrrrrrrrZZDATEZ EQUIPMENTrLr_NAMErVrKrJr\rYrrr`jcompilerPr*r+rrZ register_openrZ register_saveZregister_extensionr(r(r(r)s  "  L,