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__/IptcImagePlugin.cpython-38.pyc
U

g�
^�@s�ddlZddlZddlmZmZddlmZmZm	Z
mZddd�Zed�dZ
d	d
�Zdd�ZGd
d�dej�Ze�eje�e�ejd�dd�ZdS)�N�)�Image�	ImageFile)�i8�i16be�i32be�o8�rawZjpeg)r��cCstt|dd��S)N���)�i32�PAD)�c�r�5/usr/lib/python3/dist-packages/PIL/IptcImagePlugin.py�i srcCs(|D]}tdt|�dd�qt�dS)Nz%02x� )�end)�printr)rrrrr�dump$src@s4eZdZdZdZdd�Zdd�Zdd�Zd	d
�ZdS)�
IptcImageFileZIPTCzIPTC/NAAcCst|j|�S)N)r�info)�self�keyrrr�getint4szIptcImageFile.getintcCs�|j�d�}t|�sdSt|d�t|d�f}t|d�dksX|ddksX|ddkr`td��t|d	�}|d
kr~td��n<|dkr�d}n.|dkr�t|j�|d��}nt|d	d��}||fS)
Nr
)Nrr�r��	zinvalid IPTC/NAA file��z%illegal field length in IPTC/NAA file�)�fp�read�lenr�SyntaxError�OSErrorr�i16)r�s�tag�sizerrr�field7s(
zIptcImageFile.fieldc	Cs�|j��}|��\}}|r�|dkr$q�|r6|j�|�}nd}||jkr|t|j|t�rf|j|�|�q�|j||g|j|<q||j|<qt|jdd�}t|jdd�}d|jkr�t|jdd�d}nd}|dkr�|s�d|_	n2|dkr�|r�d||_	n|d	k�r|�rd
||_	|�
d�|�
d�f|_zt|�
d
�}Wnt
k
�r^td��YnX|dk�r�d||fdd|jd|jdffg|_dS)N���
)r�<rr)r�A�LrZRGBrZCMYK)r�)r�)r�xzUnknown IPTC image compression�iptc)r"�tellr+r#r�
isinstance�list�appendr�moderZ_size�COMPRESSION�KeyErrorr&r*�tile)	r�offsetr)r*�tagdataZlayersZ	component�idZcompressionrrr�_openQs>




 �zIptcImageFile._opencCs&t|j�dks |jdddkr,tj�|�S|jd\}}}|\}}|j�|�tjdd�\}}t�	|�}|dkr�|�
d|j�|��\}}	|dkr�q�|	dkr�|j�
t|	d	��}
|
s�q�|�
|
�|	t|
�8}	q�q�|��zt�|�}|��|j|_W5zt�|�Wntk
�rYnXXdS)
Nrrr5F)�textr	z
P5
%d %d
255
r,i )r$r=r�loadr"�seek�tempfileZmkstemp�os�fdopen�writer*r+r#�min�close�unlinkr&r�open�im)r�typer=Zbox�encodingr>Zo_fdZoutfile�or*r(Z_imrrrrC�s6 


zIptcImageFile.loadN)	�__name__�
__module__�__qualname__�formatZformat_descriptionrr+rArCrrrrr/s1rz.iimc	Cs�ddlm}m}ddl}d}t|t�r,|jSt||j�rT|j�d�}|r�|�d�}n8t||j	�r�z|j
j|j}Wnt
tfk
r�YnX|dkr�dSGdd�d�}|�}t|_i|_|�|�|_z|��Wnttfk
r�YnX|jS)	z�
    Get IPTC information from TIFF, JPEG, or IPTC file.

    :param im: An image containing IPTC data.
    :returns: A dictionary containing IPTC information, or None if
        no IPTC information block was found.
    r)�TiffImagePlugin�JpegImagePluginrN�	photoshopic@seZdZdS)zgetiptcinfo.<locals>.FakeImageN)rQrRrSrrrr�	FakeImage�srX)�rUrV�ior7rrZ
JpegImageFile�getZ
TiffImageFiler)r?ZIPTC_NAA_CHUNK�AttributeErrorr<�	__class__�BytesIOr"rA�
IndexError)rMrUrVrZ�datarWrXrrr�getiptcinfo�s4
ra)rFrErYrrZ_binaryrrr'rr
rr;rrrrZ
register_openrTZregister_extensionrarrrr�<module>s
|