K i (BddlmZddlZddlZddlZddlmZmZmZddl m Z m Z ddl m Z dZddZgd Zd d Zd!d ZGd d e jZd"d#dZd$dZd%dZd%dZe j0ej2ee j4ej2eedk(rqeej:dkredej>ej:dZ ee sedej>e jBe 5Z"ede"ede"j2ede"jFede"jHeddee"jKeej:dkDrxej:dZ&e"jOe jPjRZ"edejTjWe de&de"jYe&ej2dddyy#1swYyxYw)&) annotationsN)IOAnycast)Image ImageFile) DeferredErrorFcX t|}||z dk(ryy#ttf$rYywxYw)Nrr)int ValueError OverflowError)fis [/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/SpiderImagePlugin.pyisIntr0s8 F q5A:  &s )))riiiicd|z}dD]}t||ryt|d}|tvryt|d}t|d}t|d}|||zk7ry|S)Nc)r rrrrr)rr iforms)thriformlabreclabbytlenbyts risSpiderHeaderr$Ds}  A &QqT{ !IE F 2ZF 2ZF 2ZF &6/" Mct|d5}|jd}dddtjd}t |}|dk(r!tjd|}t |}|S#1swYRxYw)Nrb\z>23frz<23f)openreadstructunpackr$)filenamefprrhdrlens r isSpiderImager0Xsp h  GGBK fa A A F { MM&! $" Ms A00A9cveZdZdZdZdZddZeddZeddZ ddZ ddZ ddd Z e rd d lmZdd Zy )SpiderImageFileSPIDERzSpider 2D imageFcd}|jj|} d|_tjd|}t |}|dk(r(d|_tjd|}t |}|dk(r d}t | d|z}t|d}|dk7r d }t |t|d t|d f|_ t|d |_ t|d |_ |jdk(r|jdk(r |} d|_ n|jdkDr[|jdk(rLt|d t|d zdz|_ ||_t|d|_ |d z} d|_ nB|jdk(r&|jdkDr||jz} d |_ n d}t ||jrd|_nd|_d|_t%j&dd|j(z| |j g|_|j|_y#tj$r}d}t ||d}~wwxYw)Nlrz>27frz<27fznot a valid Spider filerrznot a Spider 2D imagerrz inconsistent stack header valueszF;32BFzF;32FFrawrr)r.r* bigendianr+r,r$ SyntaxErrorerrorr _sizeistack imgnumber_nimagesimgbytesr/ stkoffsetrawmode_moder _Tilesizetile_fp) selfnrrr/msgerr offsets r_openzSpiderImageFile._openhs  GGLLO *DN fa(A#A&F{!"MM&!,'*{/!#&& AIAaD  A:)Cc" "2ZQqT* !B%j QrU ;;! ! 3FDM [[1_1!4"JQqT2Q6DM DK"JDMaZFDN [[A $..1"4dnn,FDK4Cc" " >>#DL"DL __UFTYY,> UV 77S|| *+Cc" ) *sA'H00IIIc|jSNrCrLs rn_frameszSpiderImageFile.n_framess }}r%c |jdkDSNrrTrUs r is_animatedzSpiderImageFile.is_animateds}}q  r%c@|jdkry|jdz S)Nrr)rBrUs rtellzSpiderImageFile.tells >>A >>A% %r%c|jdk(r d}t||j|syt|jt r|jj |j||j|jzzz|_ |j|_ |jj|j|jy)Nrz#attempt to seek in a non-stack file) rAEOFError _seek_check isinstancerKr exr/rDrEr.seekrQ)rLframerNs rrazSpiderImageFile.seeks ;;! 7C3- &  dhh .((++ u dmm0K'LL((  T^^$ r%c|j}t|dtsJttttf|\}}d||k7r|||z z  |z|j fdj dS)Nrrc|zzSrS)rbms rz.SpiderImageFile.convert2byte..sAEAIr%L) getextremar_floatrtuplepointconvert)rLdepthextremaminimummaximumrfrgs @@r convert2bytezSpiderImageFile.convert2bytes//#'!*e,,,eUl 3W= g 7*+A BLzz-.66s;;r%rImageTkcPddlm}|j|jdS)Nrrt)palette)ru PhotoImagers)rLrus r tkPhotoImagezSpiderImageFile.tkPhotoImages$!!$"3"3"5s!CCr%N)returnNone)r|r )r|bool)rbr r|r}))ror r| Image.Image)r|zImageTk.PhotoImage)__name__ __module__ __qualname__formatformat_description!_close_exclusive_fp_after_loadingrQpropertyrVrYr[rars TYPE_CHECKINGryrur{rer%rr2r2cs^ F*(-%9v!!& <Dr%r2c|t|dkryg}|D]}tjj|st d|1 t j |5}t|tsJ|j}ddd|jd<|j||S#1swY-xYw#t$rt|st |dYwxYw)zJcreate a list of :py:class:`~PIL.Image.Image` objects for use in a montageNrzunable to find z is not a Spider image filer-)lenospathexistsprintrr)r_r2rs Exceptionr0infoappend)filelist byte_imgsimgimbyte_ims rloadImageSeriesrs3x=1,I "ww~~c" OC5) *  C ,B!"o666//+ ,$' Z ! "  , ,  %89:  s*B8#B,B8,B5 1B88"CCc|j\}}|dz}td|z }d|zdk7r|dz }||z}t|dz }|dkrgSdg|z}d|d<t||d<t||d <d|d <t||d <t||d <t||d <t||d<|dd}|jd|Dcgc]}t j d|c}Scc}w)Nr8irrrgg?rrrrrrr)rIr rkrr+pack) rnsamnrowr#r!r"nvalueshdrvs rmakeSpiderHeaderrsJD$ AXF  F f}!  f_F&1*oG| %'/CCF 4[CF 4[CF CFDkCGFmCGFmCGFmCG ab'CJJsO), -AFKKQ  -- -sC(c ,|jdk7r|jd}t|}t|dkr d}t ||j |d}t j||t jdd|jzd|gy)Nr:rwzError creating Spider headerzF;32NFr;r<r) modernrrOSError writelinesr _saverHrI)rr.r-rrNrFs rrrs| ww#~ ZZ_ 2 C 3x#~,clMM#G OOBY__UFRWW4DaQRSr%ctjj|d}t|tr|j n|}t jtj|t|||yrX) rrsplitextr_bytesdecoderregister_extensionr2rr)rr.r- filename_extexts r _save_spiderr"sV77##H-a0L#-lE#B,    C _33S9 "b(r%__main__rz7Syntax: python3 SpiderImagePlugin.py [infile] [outfile]z$input image must be in Spider formatzimage: zformat: zsize: zmode: z max, min:  )endzsaving a flipped version of z as )rrr|r )rztuple[float, ...]r|r )r-strr|r rS)rzlist[str] | Noner|zlist[Image.Image] | None)rrr|z list[bytes])rrr.z IO[bytes]r-z str | bytesr|r})- __future__rrr+systypingrrrryrr _utilr rrrr$r0r2rrrr register_openr register_saverrargvrexitr-r)rrIrrjoutfile transpose TransposeFLIP_LEFT_RIGHTrbasenamesaverer%rrsF#    $(nDi))nDl6.< T O**O<O**L9 z 388}q GH xx{H  " 45 H 5 tn  $% rwwi ! rwwi ! l$ bmmo sxx=1 hhqkGeoo==>B .rww/?/?/I.JKYa!  GGG_33 4#5555s C8HH