HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/PIL/__pycache__/SgiImagePlugin.cpython-38.pyc
U

g�
^��	@s�ddlZddlZddlmZmZddlmZmZm	Z	dd�Z
ddddd	d
ddd
�ZGdd�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)�i8�i16be�o8cCst|�dkot|�dkS)N���)�len�i16)�prefix�r
�4/usr/lib/python3/dist-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	Cs�d}|j�|�}t|�dkr$td��t|d�}t|d�}t|dd��}t|dd��}t|dd��}t|d	d��}|||f}	d
}
zt|	}
Wntk
r�YnX|
d
kr�td��||f|_|
�d�d
|_	|j	dkr�d|_
d}|d
k�rl|||}|dk�r*dd|j||j	d
|ffg|_n@g|_|}
|j	D].}|j�
dd|j|
|d
|ff�|
|7}
�q:n&|dk�r�dd|j||
||ffg|_dS)N�r	zNot an SGI image filerrr���
��Unsupported SGI image mode�;rrz	image/rgb����SGI16)rr�rawrZsgi_rle)�fp�readr�
ValueErrorr�MODES�KeyErrorZ_size�split�modeZcustom_mimetype�sizeZtile�append)�selfZheadlen�sZcompression�bpcZ	dimension�xsize�ysize�zsizeZlayout�rawmode�orientation�pagesize�offsetZlayerr
r
r�_open7sL




�
�
�zSgiImageFile._openN)�__name__�
__module__�__qualname__�formatZformat_descriptionr4r
r
r
rr2src	Cs6|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|������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|���q|��dS)Nrrrrr,r)rrz%Unsupported number of bytes per pixelrr	rrrz0incorrect number of bands in SGI write: {} vs {}��ascii�ignorez>hz>Hz>lZ4s�Z79sr+Z404srr )r'r#Zencoderinfo�getr(r
Zgetbandsr8�os�path�splitext�basename�encode�write�structZpackrr&�tobytes�close)�imr!�filename�infor,r1ZmagicNumberZrleZdim�x�y�zZpinminZpinmaxZimgNameZcolormapr0�channelr
r
r�_save}sd



��
rNc@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)Nrrrr r)rr)�args�stater-r.r
r'�fd�seek�ranger�newZ	frombytesr"rGZputband)	r*�bufferr0Zstrider1r2r/ZbandrMr
r
r�decode�s
�zSGI16Decoder.decodeN)r5r6r7Z	_pulls_fdrWr
r
r
rrO�srOrz	image/sgiz.bwz.rgbz.rgbaz.sgi)r>rDrrrZ_binaryrrrrrr$rrNZ	PyDecoderrOZregister_decoderZ
register_openr8Z
register_saveZ
register_mimeZregister_extensionsr
r
r
r�<module>s*�KL