§
    œ"²c$  ã            	       ó„  — d dl Z d dlZddlmZmZ ddlmZ ddlmZ d„ Z	ddddd	d
dddœZ
 G d„ dej        ¦  «        Zd„ Z G d„ dej        ¦  «        Z ej        de¦  «          ej        ej        ee	¦  «          ej        ej        e¦  «          ej        ej        d¦  «          ej        ej        g d¢¦  «         dS )é    Né   )ÚImageÚ	ImageFile)Úi16be)Úo8c                 óN   — t          | ¦  «        dk    ot          | ¦  «        dk    S )Né   éÚ  )ÚlenÚi16)Úprefixs    ú4/usr/lib/python3/dist-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                   ó   — e Zd ZdZdZd„ ZdS )ÚSgiImageFileÚSGIzSGI Image File Formatc           	      ó:  — d}| j                              |¦  «        }t          |¦  «        sd}t          |¦  «        ‚|d         }|d         }t	          |d¦  «        }t	          |d¦  «        }t	          |d¦  «        }t	          |d¦  «        }	|||	f}
d	}	 t
          |
         }n# t          $ r Y nw xY w|d	k    rd
}t          |¦  «        ‚||f| _        |                     d¦  «        d         | _	        | j	        dk    rd| _
        d}|dk    ro||z  |z  }|dk    rdd| j        z   || j	        d|ffg| _        d S g | _        |}| j	        D ]0}| j                             dd| j        z   ||d|ff¦  «         ||z  }Œ1d S |dk    rdd| j        z   ||||ffg| _        d S d S )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Úcustom_mimetypeÚsizeÚtileÚappend)ÚselfÚheadlenÚsÚmsgÚcompressionÚbpcÚ	dimensionÚxsizeÚysizeÚzsizeÚlayoutÚrawmodeÚorientationÚpagesizeÚoffsetÚlayers                   r   Ú_openzSgiImageFile._open8   s"  € ð ˆØŒG�LŠL˜Ñ!Ô!ˆå�q‰zŒzð 	"Ø)ˆCÝ˜S‘/”/Ð!ð ˜”dˆð �Œdˆõ ˜˜1‘I”Iˆ	õ �A�q‘	”	ˆõ �A�q‘	”	ˆõ �A�r‘
”
ˆð �i Ð&ˆð ˆð	Ý˜F”mˆGˆGøÝð 	ð 	ð 	ØˆDð	øøøð �bŠ=ˆ=Ø.ˆCÝ˜S‘/”/Ð!à˜E�\ˆŒ
Ø—M’M #Ñ&Ô& qÔ)ˆŒ	ØŒ9˜ÒÐØ#.ˆDÔ ð ˆð ˜!ÒÐØ˜u‘} sÑ*ˆHØ�aŠxˆxà˜f t¤yÑ0°'¸D¼IÀqÈ+Ð;VÐWð�”	�	�	ð �”	Ø �Ø!œYð 'ð '�EØ”I×$Ò$Ø ¨¬Ñ 2°F¸UÀAÀ{Ð<SÐTñô ð ð ˜hÑ&�F�Fð	'ð 'ð
 ˜AÒÐà˜F T¤YÑ.°¸'À;ÐPSÐ9TÐUðˆDŒIˆIˆIð Ðs   ÂB# Â#
B0Â/B0N)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionrB   © r   r   r   r   3   s3   € € € € € à€FØ0ÐðDð Dð Dð Dð Dr   r   c           	      ó  — | j         dk    r'| j         dk    r| j         dk    rd}t          |¦  «        ‚| j        }|                     dd¦  «        }|dvrd}t          |¦  «        ‚d	}d
}d}d}	| j        \  }
}| j         dk    r	|dk    rd}	n| j         dk    rd}	t          | j         ¦  «        }|	dk    s|	dk    rd}t          |                      ¦   «         ¦  «        |k    r6d|› dt          |                      ¦   «         ¦  «        › �}t          |¦  «        ‚d}d}t          j         	                    t          j         
                    |¦  «        ¦  «        d         }|                     dd¦  «        }d}|                     t          j        d|¦  «        ¦  «         |                     t          |¦  «        ¦  «         |                     t          |¦  «        ¦  «         |                     t          j        d|	¦  «        ¦  «         |                     t          j        d|
¦  «        ¦  «         |                     t          j        d|¦  «        ¦  «         |                     t          j        d|¦  «        ¦  «         |                     t          j        d|¦  «        ¦  «         |                     t          j        d|¦  «        ¦  «         |                     t          j        dd¦  «        ¦  «         |                     t          j        d|¦  «        ¦  «         |                     t          j        dd¦  «        ¦  «         |                     t          j        d|¦  «        ¦  «         |                     t          j        dd¦  «        ¦  «         d}|dk    rd}|                      ¦   «         D ]-}|                     |                     d|d|¦  «        ¦  «         Œ.t%          |d¦  «        r|                     ¦   «          d S d S )Nr   r   r   r    r7   r   )r   r	   z%Unsupported number of bytes per pixelr"   r
   r   r   r	   z(incorrect number of bands in SGI write: z vs éÿ   ÚasciiÚignorez>hz>Hz>lÚ4sr   Ú79sr4   Ú404sr   r$   Úflush)r-   r(   ÚencoderinfoÚgetr/   r   ÚgetbandsÚosÚpathÚsplitextÚbasenameÚencodeÚwriteÚstructÚpackr   r,   ÚtobytesÚhasattrrP   )Úimr&   Úfilenamer5   Úinfor7   r>   Úmagic_numberÚrleÚdimÚxÚyÚzÚpinminÚpinmaxÚimg_nameÚcolormapr=   Úchannels                      r   Ú_saverl      s”  € Ø	„w�%ÒÐ˜BœG vÒ-Ð-°"´'¸S².°.Ø*ˆÝ˜‰oŒoÐð Œ>€Dð �(Š(�5˜!Ñ
Ô
€Cà
�&ÐÐØ5ˆÝ˜‰oŒoÐð €Kà€Là
€Cð €CàŒ7�D€A€qØ	„w�#‚~€~˜!˜qš&˜&ØˆˆØ	Œ�CŠˆØˆåˆBŒG‰Œ€Aà
ˆa‚x€x�3˜!’8�8Øˆõ ˆ2�;Š;‰=Œ=ÑÔ˜QÒÐØT¸ÐTÐTÅÀBÇKÂKÁMÄMÑ@RÔ@RÐTÐTˆÝ˜‰oŒoÐð €Fà€FåŒw×Ò¥¤× 0Ò 0°Ñ :Ô :Ñ;Ô;¸AÔ>€HØ�Š˜w¨Ñ1Ô1€Hà€HØ‡H‚H�VŒ[˜˜|Ñ,Ô,Ñ-Ô-Ð-Ø‡H‚H�R�‰WŒWÑÔÐØ‡H‚H�R�‰WŒWÑÔÐØ‡H‚H�VŒ[˜˜sÑ#Ô#Ñ$Ô$Ð$Ø‡H‚H�VŒ[˜˜qÑ!Ô!Ñ"Ô"Ð"Ø‡H‚H�VŒ[˜˜qÑ!Ô!Ñ"Ô"Ð"Ø‡H‚H�VŒ[˜˜qÑ!Ô!Ñ"Ô"Ð"Ø‡H‚H�VŒ[˜˜vÑ&Ô&Ñ'Ô'Ð'Ø‡H‚H�VŒ[˜˜vÑ&Ô&Ñ'Ô'Ð'Ø‡H‚H�VŒ[˜˜sÑ#Ô#Ñ$Ô$Ð$Ø‡H‚H�VŒ[˜ Ñ)Ô)Ñ*Ô*Ð*Ø‡H‚H�VŒ[˜˜cÑ"Ô"Ñ#Ô#Ð#Ø‡H‚H�VŒ[˜˜xÑ(Ô(Ñ)Ô)Ð)Ø‡H‚H�VŒ[˜ Ñ%Ô%Ñ&Ô&Ð&à€GØ
ˆa‚x€xØˆà—8’8‘:”:ð Bð BˆØ
�Š�—’ ¨°°KÑ@Ô@ÑAÔAÐAÐAåˆr�7ÑÔð Ø
�Š‰
Œ
ˆ
ˆ
ˆ
ðð r   c                   ó   — e Zd ZdZd„ ZdS )ÚSGI16DecoderTc                 óÌ  — | j         \  }}}| j        j        | j        j        z  }t	          | j        ¦  «        }| j                             d¦  «         t          |¦  «        D ]�}t          j
        d| j        j        | j        j        f¦  «        }|                     | j                             d|z  ¦  «        dd||¦  «         | j                             |j        |¦  «         Œ‚dS )Nr   r   r	   r$   r   )r"   r   )ÚargsÚstater9   r:   r   r-   ÚfdÚseekÚranger   ÚnewÚ	frombytesr'   r^   Úputband)	r2   Úbufferr=   Ústrider>   r?   r;   Úbandrk   s	            r   ÚdecodezSGI16Decoder.decodeÎ   sÑ   € Ø'+¤yÑ$ˆ�˜Ø”:Ô# d¤jÔ&6Ñ6ˆÝ�D”I‘”ˆØŒ�Š�SÑÔÐå˜%‘L”Lð 	.ð 	.ˆDÝ”i  d¤jÔ&6¸¼
Ô8HÐ%IÑJÔJˆGØ×ÒØ”—’˜Q ™\Ñ*Ô*¨E°7¸FÀKñô ð ð ŒG�OŠO˜GœJ¨Ñ-Ô-Ð-Ð-àˆur   N)rC   rD   rE   Ú	_pulls_fdr{   rH   r   r   rn   rn   Ë   s(   € € € € € Ø€Iðð ð ð ð r   rn   r#   z	image/sgi)z.bwz.rgbz.rgbaz.sgi)rT   rZ   r   r   r   Ú_binaryr   r   r   r   r)   r   rl   Ú	PyDecoderrn   Úregister_decoderÚregister_openrF   Úregister_saveÚregister_mimeÚregister_extensionsrH   r   r   ú<module>r„      s†  ðð2 
€	€	€	Ø €€€à Ð Ð Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð ð3ð 3ð 3ð
 ØØØØØØØð		ð 		€ðIð Ið Ið Ið I�9Ô&ñ Iô Ið IðXIð Ið IðXð ð ð ð �9Ô&ñ ô ð ð. €Ô �w Ñ -Ô -Ð -Ø €Ô �LÔ'¨°wÑ ?Ô ?Ð ?Ø €Ô �LÔ'¨Ñ /Ô /Ð /Ø €Ô �LÔ'¨Ñ 5Ô 5Ð 5à €Ô ˜,Ô-Ð/OÐ/OÐ/OÑ PÔ PÐ PÐ PÐ Pr   