1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
U
T±d    ã    @sÔddlZddlZddlmZmZddlmZddlmZdd„Z    ddd    d    d
d d d dœZ
Gdd„dejƒZ dd„Z Gdd„dej ƒZe de¡e e je e    ¡e e je ¡e e jd¡e e jddddg¡dS)éNé)ÚImageÚ    ImageFile)Úi16be)Úo8cCst|ƒdkot|ƒdkS)NééÚ)ÚlenÚi16)Úprefix©r úId:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\PIL/SgiImagePlugin.pyÚ_accept!srÚLúL;16BÚRGBzRGB;16BÚRGBAzRGBA;16B))rrr)rrr)rrr)rrr)rér)rrr)rré)rrrc@seZdZdZdZdd„ZdS)Ú SgiImageFileZSGIzSGI Image File Formatc    Cszd}|j |¡}t|ƒs$d}t|ƒ‚|d}|d}t|dƒ}t|dƒ}t|dƒ}t|dƒ}    |||    f}
d    } z t|
} Wntk
rŠYnX| d    kr d
}t|ƒ‚||f|_|  d ¡d |_    |j    d krÊd|_
d} |d krP|||} |dkrdd|j ||j    d | ffg|_ n@g|_ |}|j    D].}|j   dd|j ||d | ff¡|| 7}qn&|dkrvdd|j || | |ffg|_ dS)NézNot an SGI image filerrrééé
ÚúUnsupported SGI image modeú;rrz    image/rgbéÿÿÿÿÚSGI16)rrÚrawrZsgi_rle)ÚfpÚreadrÚ
ValueErrorr
ÚMODESÚKeyErrorÚ_sizeÚsplitÚmodeZcustom_mimetypeÚsizeZtileÚappend)ÚselfZheadlenÚsÚmsgÚ compressionÚbpcZ    dimensionÚxsizeÚysizeÚzsizeZlayoutÚrawmodeÚ orientationÚpagesizeÚoffsetZlayerr r r Ú_open7sP 
 
 
 
 
 
 
 
 
ÿ
ÿ
ÿzSgiImageFile._openN)Ú__name__Ú
__module__Ú __qualname__ÚformatÚformat_descriptionr6r r r r r3src    CsR|jdkr*|jdkr*|jdkr*d}t|ƒ‚|j}| dd¡}|dkrPd}t|ƒ‚d    }d
}d }d }    |j\}
} |jdkr‚| dkr‚d}    n|jdkrd }    t|jƒ} |    dksª|    d kr®d} t| ¡ƒ| krÞd| ›dt| ¡ƒ›}t|ƒ‚d } d}tj     tj 
|¡¡d }|  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 krd}| ¡D]}|  | d|d |¡¡qt|dƒrN| ¡dS)Nrrrrr.r)rrz%Unsupported number of bytes per pixelrrrrrz(incorrect number of bands in SGI write: z vs éÿÚasciiÚignorez>hz>Hz>lZ4sóZ79sr+Z404srrÚflush)r'r"Z encoderinfoÚgetr(r    ZgetbandsÚosÚpathÚsplitextÚbasenameÚencodeÚwriteÚstructÚpackrr&ÚtobytesÚhasattrr@)Úimr Úfilenamer,Úinfor.r3Z magic_numberZrleZdimÚxÚyÚzZpinminZpinmaxZimg_nameZcolormapr2Úchannelr r r Ú_save}sb 
 
 
 
  rSc@seZdZdZdd„ZdS)Ú SGI16DecoderTc    CsŠ|j\}}}|jj|jj}t|jƒ}|j d¡t|ƒD]J}t     
d|jj|jjf¡}|  |j  d|¡dd||¡|j  |j |¡q:dS)Nrrrrr)rr)ÚargsÚstater/r0r    r'ÚfdÚseekÚrangerÚnewZ    frombytesr!rLZputband)    r*Úbufferr2Zstrider3r4r1ZbandrRr r r ÚdecodeÌs 
  ÿzSGI16Decoder.decodeN)r7r8r9Z    _pulls_fdr\r r r r rTÉsrTrz    image/sgiz.bwz.rgbz.rgbaz.sgi)rBrHrrrÚ_binaryrr
rrr#rrSZ    PyDecoderrTZregister_decoderZ register_openr:Z register_saveZ register_mimeZregister_extensionsr r r r Ú<module>s,  øJL