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: //usr/lib/python3/dist-packages/PIL/__pycache__/PsdImagePlugin.cpython-38.pyc
U

tCf6�
@s�ddlZddlmZmZmZddlmZmZm	Z
dddddd	ddd
d�	Zdd
�ZGdd�dej�Z
dd�Zdd�Ze�e
je
e�e�e
jd�dS)�N�)�Image�	ImageFile�ImagePalette)�i8�i16be�i32be)�1r)�Lr)�Pr)�RGB�)�CMYK�)ZLABr
)	)rr)r�)rr)�r)r
r)rr)�r)rr)�	rcCs|dd�dkS)Nr�8BPS�)�prefixrr�4/usr/lib/python3/dist-packages/PIL/PsdImagePlugin.py�_accept*src@sXeZdZdZdZdZdd�Zedd��Zedd	��Z	d
d�Z
dd
�Zdd�Zdd�Z
dS)�PsdImageFileZPSDzAdobe PhotoshopFcCs>|jj}|d�}|dd�dks4t|dd��dkr<td��t|dd��}t|dd��}t|dd��}t||f\}}||kr�td	��||_t|d
d��t|dd��f|_t|d��}|r�||�}	|dkr�|d
kr�t	�
d|	�|_g|_t|d��}|�r�|j�
�|}
|j�
�|
k�r�|d�t|d��}|t|d���}t|�d@�sZ|d�|t|d���}	t|	�d@�r�|d�|j�|||	f�|dk�r|	|jd<�qg|_t|d��}|�r|j�
�|}
t|d��}|�rt�t�|j|��}
t|
|�|_|j�|
�t|j|d|j|�|_|j|_d|_d|_dS)N�rrrznot a PSD file���znot enough channels��rizRGB;LriZicc_profile)rr)�fp�read�i16�SyntaxError�MODES�OSError�mode�i32Z_sizer�rawZpaletteZ	resources�tellr�len�append�info�layers�io�BytesIOr�
_safe_read�
_layerinfo�seek�	_maketile�size�tile�_PsdImageFile__fp�frameZ
_min_frame)�selfr!�sZpsd_bitsZpsd_channelsZpsd_moder&�channelsr4�data�end�id�nameZ_layer_datarrr�_open8s\$"
zPsdImageFile._opencCs
t|j�S�N�r*r-�r8rrr�n_frames�szPsdImageFile.n_framescCst|j�dkS)NrrArBrrr�is_animated�szPsdImageFile.is_animatedcCsj|�|�sdSz:|j|d\}}}}||_||_||_|j|_||fWStk
rdtd��YnXdS)Nrz
no such layer)	Z_seek_checkr-r&r5r7r6r �
IndexError�EOFError)r8�layerr>r&�bboxr5rrrr2�s

zPsdImageFile.seekcCs|jSr@)r7rBrrrr)�szPsdImageFile.tellcCsR|jr"|jj|jks"|jj|jkr8tj�|j|jd�|_|jdkrNtj�|�dS)Nrr)Zimr&r4rZcoreZfill�loadrBrrr�load_prepare�s"
zPsdImageFile.load_preparecCsBz4z|j|jkr|j��Wntk
r0YnXW5d|_XdSr@)r6r �close�AttributeErrorrBrrr�
_close__fp�s
zPsdImageFile._close__fpN)�__name__�
__module__�__qualname__�formatZformat_descriptionZ!_close_exclusive_fp_after_loadingr?�propertyrCrDr2r)rJrMrrrrr2sN

rc	s|g}�fdd�}t|d��}|t|�dkr4td��tt|��D�]�}t|d��}t|d��}t|d��}t|d��}	g}
g}t|d��}tt|��}
t|
�dkr�q@|
D]J}t|d��}|dkr�d}nd	|}|�|�t|d��}|
�||f�q�|��|d
gk�rd}n2|dd
d
gk�r$d}n|ddd
d
gk�r<d	}nd}|d�d}t|d��}d}|�r��	�|}t|d��}|�r���
|dtj�||d7}t|d��}|�r���
|tj�||d7}t
|d��}|�r�||��dd�}||d7}��
|�|�|||||	|ff�q@d}|D]R\}}}g}|D]$}t�||d�}|�r6|�|��q6||||f||<|d7}�q$|S)Ncst��|�Sr@)rr0)r4�r rrr!�sz_layerinfo.<locals>.readr�z4Layer block too short for number of layers requestedri���AZRGBA�Rr
�B�Grr�r�rzlatin-1�replace)r"�absr#�ranger'�listr*r+�sortr)r2r.�SEEK_CURr�decoder3�extend)r Zct_bytesr-r!Zct�iZy0Zx0Zy1Zx1r,r&Zct_types�types�type�mr4r>ZcombinedZdata_endZlengthrHr5�trrSrr1�s|

r1cCs@d}|j}t|d��}|d|d}|d|d}|��}	|dkr�g}t|�D]:}
||
}|dkrn|d7}|�d||	|f�|	||}	qRn�|dk�r d}g}|||d�}
|��}	t|�D]\}
||
}|dkr�|d7}|�d||	|f�t|�D]$}|	t|
||d��}	|d7}q�q�|�|	�|	d@�r<|d�|S)	Nrrr
rrz;Ir(Zpackbits)r!r"r)r]r+r2)�filer&rHr:r5r!ZcompressionZxsizeZysize�offsetZchannelrGrcZ	bytecount�yrrrr3s>


r3z.psd)r.rYrrrZ_binaryrrr"rr'r$rrr1r3Z
register_openrQZregister_extensionrrrr�<module>s&�^3