
    (ph-              	         S SK Jr  S SKrS SKrS SKJr  SSKJrJr  SSK	J
r  SSK	Jr  SS jrS	S	S
S
SSSSS.r " S S\R                  5      rSS jr " S S\R"                  5      r\R&                  " S\5        \R(                  " \R*                  \\5        \R,                  " \R*                  \5        \R.                  " \R*                  S5        \R0                  " \R*                  / SQ5        g)    )annotationsN)IO   )Image	ImageFile)i16be)o8c                H    [        U 5      S:  =(       a    [        U 5      S:H  $ )N     )leni16)prefixs    E/var/www/html/venv/lib/python3.13/site-packages/PIL/SgiImagePlugin.py_acceptr   "   s    v;!2Fs 22    LL;16BRGBzRGB;16BRGBAzRGBA;16B))r   r   r   )r   r   r   )r   r   r   )r   r   r   )r      r   )r   r   r   )r   r      )r   r   r   c                  &    \ rS rSrSrSrSS jrSrg)SgiImageFile4   SGIzSGI Image File Formatc           	     8   U R                   c   eSnU R                   R                  U5      n[        U5      (       d  Sn[        U5      eUS   nUS   n[	        US5      n[	        US5      n[	        US5      n[	        US5      n	XVU	4n
S	n [
        U
   nUS	:X  a  S
n[        U5      eXx4U l        UR                  S5      S   U l	        U R                  S:X  a  SU l        SnUS:X  a  Xx-  U-  nUS:X  a&  SSU R                  -   XR                  SU44/U l        g / U l        UnU R                   H5  nU R                  R                  SSU R                  -   XSU445        X-  nM7     g US:X  a  SSU R                  -   XX44/U l        g g ! [         a     GNf = f)N   zNot an SGI image filer   r   r         
    Unsupported SGI image mode;r   r   z	image/rgbSGI16)r   r   rawr   sgi_rle)fpreadr   
ValueErrorr   MODESKeyError_sizesplit_modemodecustom_mimetypesizetileappend)selfheadlensmsgcompressionbpc	dimensionxsizeysizezsizelayoutrawmodeorientationpagesizeoffsetlayers                   r   _openSgiImageFile._open8   s   ww"""GGLL!qzz)CS/! d d 1I	 Aq	 Aq	 Ar
 & 	FmG b=.CS/!\
]]3'*
99#.D   !}s*Haxftyy0'IIq+;VW	 	 !YYEII$$ 2FA{<ST &F	 '
 AFTYY.;9TUDI =  		s   	F 
FF)r0   r.   r2   r4   N)returnNone)__name__
__module____qualname____firstlineno__formatformat_descriptionrF   __static_attributes__ r   r   r   r   4   s    F0Er   r   c           	        U R                   S;  a  Sn[        U5      eU R                  nUR                  SS5      nUS;  a  Sn[        U5      eSnSnS	nS
n	U R                  u  pU R                   S:X  a	  US:X  a  Sn	OU R                   S:X  a  Sn	[        U R                   5      nU	S;   a  Sn[        U R                  5       5      U:w  a*  SU S[        U R                  5       5       3n[        U5      eS	nSn[        R                  R                  [        R                  R                  U5      5      S	   n[        U[        5      (       a  UR                  SS5      nS	nUR                  [        R                   " SU5      5        UR                  [#        U5      5        UR                  [#        U5      5        UR                  [        R                   " SU	5      5        UR                  [        R                   " SU
5      5        UR                  [        R                   " SU5      5        UR                  [        R                   " SU5      5        UR                  [        R                   " SU5      5        UR                  [        R                   " SU5      5        UR                  [        R                   " SS5      5        UR                  [        R                   " SU5      5        UR                  [        R                   " SS5      5        UR                  [        R                   " SU5      5        UR                  [        R                   " SS5      5        SnUS:X  a  SnU R%                  5        H&  nUR                  UR'                  SUS	U5      5        M(     [)        US5      (       a  UR+                  5         g g )N>   r   r   r   r#   r;   r   )r   r   z%Unsupported number of bytes per pixelr%   r   r   r   r   r   >   r   r   z(incorrect number of bands in SGI write: z vs    asciiignorez>hz>Hz>l4sr   79sr8   404sr   r'   flush)r1   r+   encoderinfogetr3   r   getbandsospathsplitextbasename
isinstancestrencodewritestructpackr	   r/   tobyteshasattrrY   )imr)   filenamer9   infor;   rB   magic_numberrledimxyzpinminpinmaximg_namecolormaprA   channels                      r   _saverw      s   	ww***o >>D ((5!
C
&5o KL
C C77DA	ww#~!q&	CBGGA
f} 2;;=Q84BKKM@R?STo FFww 0 0 :;A>H(C  ??7H5HHHV[[|,-HHRWHHRWHHV[[s#$HHV[[q!"HHV[[q!"HHV[[q!"HHV[[v&'HHV[[v&'HHV[[s#$HHV[[)*HHV[[c"#HHV[[x()HHV[[%&G
ax88:
K@A  r7

 r   c                  "    \ rS rSrSrSS jrSrg)SGI16Decoder   Tc                j   U R                   c   eU R                  c   eU R                  u  p#nU R                  R                  U R                  R
                  -  n[        U R                  5      nU R                   R                  S5        [        U5       H  n[        R                  " SU R                  R                  U R                  R
                  45      nUR                  U R                   R                  SU-  5      SSX45        U R                  R                  UR                  U5        M     g)Nr   r   r   r'   r   )r%   r   )fdri   argsstater=   r>   r   r1   seekranger   new	frombytesr*   putband)	r6   bufferrA   striderB   rC   r?   bandrv   s	            r   decodeSGI16Decoder.decode   s    ww"""ww"""'+yy$::##djj&6&66DIIS%LDiidjj&6&6

8H8H%IJGQ\*E7F GGOOGJJ- ! r   rQ   N)r   bytesrH   ztuple[int, int])rJ   rK   rL   rM   	_pulls_fdr   rP   rQ   r   r   ry   ry      s    Ir   ry   r&   z	image/sgi)z.bwz.rgbz.rgbaz.sgi)r   r   rH   bool)ri   zImage.Imager)   z	IO[bytes]rj   zstr | bytesrH   rI   )
__future__r   r]   re   typingr   r"   r   r   _binaryr   r   r	   r   r,   r   rw   	PyDecoderry   register_decoderregister_openrN   register_saveregister_mimeregister_extensionsrQ   r   r   <module>r      s   . # 	    ! 3
 		I9&& IXJZ9&& 4   w -   L''w ?   L'' /   L'' 5   ,--/O Pr   