K i ddlmZddlZddlZddlmZddlmZmZddl m Z ddl m Z ddZ d d d d d d d ddZGddejZddZGddej"Zej&deej(ej*ee ej,ej*eej.ej*dej0ej*gdy)) annotationsN)IO)Image ImageFile)i16be)o8c>t|dk\xrt|dk(S)N)leni16)prefixs X/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/SgiImagePlugin.py_acceptr"s v;!  2F s 22LL;16BRGBzRGB;16BRGBAzRGBA;16B))rrr)rr r)r rr)r r r)rr)r rr)rr)r rrceZdZdZdZddZy) SgiImageFileSGIzSGI Image File Formatc |jJd}|jj|}t|s d}t||d}|d}t |d}t |d}t |d}t |d} t ||| f} ||f|_| jd d |_ |jd k(rd |_ d} |d k(r||z|z} |dk(r9tjdd|jz||jd | fg|_yg|_|} |jD]H}|jj!tjdd|jz| |d | f| | z } Jy|dk(r/tjdd|jz|| | |fg|_yy#t $rd }t|wxYw)NzNot an SGI image filer rr Unsupported SGI image mode;rrz image/rgbSGI16)rrrawrsgi_rle)fpreadr ValueErrorrMODESKeyError_sizesplit_modemodecustom_mimetyper_Tilesizetileappend)selfheadlensmsg compressionbpc dimensionxsizeysizezsizerawmode orientationpagesizeoffsetlayers r_openzSgiImageFile._open8sww""" GGLL !qz)CS/ !d d1I Aq Aq Ar  "S)U34G E\ ]]3'* 99 #.D   ! u}s*HaxOO*A{3    !YY'EII$$!!6DII#5vq+?V h&F 'A v 17WkSVrrrr!r:r)rr z%Unsupported number of bytes per pixelr#r rrr rasciiignorez>hz>Hz>l4sr79sr7404srr%flush)r/r) encoderinfogetr2r ospathsplitextbasename isinstancestrencodewritestructpackr r-tobyteshasattrrT)imr'filenamer8infor:r@ magic_numberrlexyzr;pinminpinmaximg_namecolormapr?channels r_saverps ww***o >>D ((5! C &5oKL C 77DAq BGG A ww#~aAQ  F Fww 0 0 :;A>H(C ??7H5HHHV[[| ,-HHRWHHRWHHV[[y )*HHV[[q !"HHV[[q !"HHV[[q !"HHV[[v &'HHV[[v &'HHV[[s #$HHV[[ )*HHV[[c "#HHV[[x ()HHV[[ %&G ax88:B K@ABr7  rceZdZdZddZy) SGI16DecoderTcd|jJ|jJ|j\}}}|jj|jj z}t |j}|jjdt|D]}tjd|jj|jj f}|j|jjd|zdd|||jj|j|y)Nrrr r%r)r#r)fdrcargsstater<r=r r/seekrangernew frombytesr(putband) r5bufferr?strider@rAr>bandros rdecodezSGI16Decoder.decodesww"""ww"""'+yy$::##djj&6&66DII  S%L .Diidjj&6&6 8H8H%IJG    Q\*E7FK  GGOOGJJ -  .rN)r|z$bytes | Image.SupportsArrayInterfacerEztuple[int, int])rGrHrI _pulls_fdrrLrrrrrrs Irrrr$z image/sgi)z.bwz.rgbz.rgbaz.sgi)rbytesrEbool)rcz Image.Imager'z IO[bytes]rdz str | bytesrErF) __future__rrWr_typingrrr_binaryrrr rr*rrp PyDecoderrrregister_decoder register_openrJ register_save register_mimeregister_extensionsrLrrrs.# !3  K9&&K\AH9&&4w -L''w?L''/L''5,--/OPr