B ë˜Þ]nã @sàddlZddlZddlmZmZddlmZmZm Z ddl m Z dZ dd„Z d d d d d d d ddœZGdd„dejƒZdd„ZGdd„dejƒZe de¡e ejee ¡e eje¡e ejd¡e ejddddg¡dS)éNé)ÚImageÚ ImageFile)Úi8Úi16beÚo8)Úpy3z0.3cCst|ƒdkot|ƒdkS)NéiÚ)ÚlenÚi16)Úprefix©r ú4/tmp/pip-build-ktz6qwqq/Pillow/PIL/SgiImagePlugin.pyÚ_accept%srÚLzL;16BÚRGBzRGB;16BÚRGBAzRGBA;16B))rrr)rr r)r rr)r r r)rér)r rr)rré)r rrc@seZdZdZdZdd„ZdS)Ú SgiImageFileZSGIzSGI Image File Formatc Csšd}|j |¡}t|ƒdkr$tdƒ‚t|dƒ}t|dƒ}t|dd…ƒ}t|dd…ƒ}t|dd…ƒ}t|d d…ƒ}|||f} d } y t| } Wntk rªYnX| d kr¼td ƒ‚||f|_|  d ¡d |_ |j dkræd|_ d} |d krp|||} |dkr*dd|j ||j d | ffg|_ nDg|_ |} x`|j D].}|j   dd|j | |d | ff¡| | 7} q|jdkr&|jdkr&|jdkr&tdƒ‚|j}| dd¡}|dkrHtdƒ‚d }d }d }d }|j\} } |jdkrz| dkrzd}n|jdkrˆd }t|jƒ} |dks¢|d kr¦d} t| ¡ƒ| krÎtd| t| ¡ƒfƒ‚d } d} tj  tj  |¡¡d }t rþ|  dd¡}d }|  t d|¡¡|  t|ƒ¡|  t|ƒ¡|  t d|¡¡|  t d| ¡¡|  t d| ¡¡|  t d| ¡¡|  t d| ¡¡|  t d| ¡¡|  t dd¡¡|  t d|¡¡|  t dd¡¡|  t d|¡¡|  t dd¡¡d}|d krd}x(| ¡D]}|  | d|d |¡¡qW| ¡dS)NrrrzUnsupported SGI image moder+r)rr z%Unsupported number of bytes per pixelriÚrrr z0incorrect number of bands in SGI write: %s vs %séÿÚasciiÚignorez>hz>Hz>lZ4sóZ79sr)Z404szL;16Br)r%r Z encoderinfoÚgetr&r ZgetbandsÚosÚpathÚsplitextÚbasenamerÚencodeÚwriteÚstructÚpackrr$ÚtobytesÚclose)ÚimrÚfilenameÚinfor+r0Z magicNumberZrleZdimÚxÚyÚzZpinminZpinmaxZimgNameZcolormapr/Úchannelr r rÚ_save‚s^      rOc@seZdZdZdd„ZdS)Ú SGI16DecoderTc CsŽ|j\}}}|jj|jj}t|jƒ}|j d¡xVt|ƒD]J}t   d|jj|jjf¡}|  |j  d|¡dd||¡|j  |j |¡qrDrrrÚ_binaryrrr rZ_utilrÚ __version__rr!rrOZ PyDecoderrPZregister_decoderZ register_openr7Z register_saveZ register_mimeZregister_extensionsr r r rÚs, KK