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

g�
^�@spddlmZmZmZddlmZdd�Zdd�ZGdd�dej	�Z
e�e
je�e�
e
jd	�e�e
jd
�dS)�)�Image�	ImageFile�JpegImagePlugin)�i16becCs
t�|�S�N)r�_accept)�prefix�r	�4/usr/lib/python3/dist-packages/PIL/MpoImagePlugin.pyrsrcCst�|||�Sr)r�_save)Zim�fp�filenamer	r	r
rsrc@speZdZdZdZdZdd�Zddd�Zd	d
�Ze	dd��Z
e	d
d��Zdd�Zdd�Z
dd�Zeddd��ZdS)�MpoImageFileZMPOzMPO (CIPA DC-007)FcCs$|j�d�tj�|�|��dS)N�)r�seekr�
JpegImageFile�_open�_after_jpeg_open��selfr	r	r
r,szMpoImageFile._openNcs�|dk	r|n����_�jd�_�fdd��jdD��_d�jd<�jt�j�ksZt��jd=�j�_�j�	�jd�d�_
d�_d�_dS)Ni�csg|]}|d�jd�qS)Z
DataOffset�mpoffset)�info)�.0Zmpentrr	r
�
<listcomp>4sz1MpoImageFile._after_jpeg_open.<locals>.<listcomp>i�rrr)
Z_getmpZmpinfo�_MpoImageFile__framecount�_MpoImageFile__mpoffsets�len�AssertionErrorrr�_MpoImageFile__fpr�_MpoImageFile__frame�offset�readonly)r�mpheaderr	rr
r1s
�
zMpoImageFile._after_jpeg_opencCs|j�|�dSr)rr)r�posr	r	r
�	load_seekCszMpoImageFile.load_seekcCs|jSr�rrr	r	r
�n_framesFszMpoImageFile.n_framescCs
|jdkS)Nrr%rr	r	r
�is_animatedJszMpoImageFile.is_animatedcCs�|�|�sdS|j|_|j||_|j�|jd�|j�d�}|sLtd��t|�dkr�t|j�d��d}t	�
|j|�|jd<|��}d|kr�d|kr�|d|df|_
nd|jkr�|jd=dd|j|j|jd	ffg|_||_dS)
N�zNo data found for framei��exifi�i�Zjpeg)rr�)Z_seek_checkrrrr r�read�
ValueError�i16rZ
_safe_readrZgetexifZ_size�size�modeZtiler)r�frameZsegment�nr)r	r	r
rNs$

zMpoImageFile.seekcCs|jSr)rrr	r	r
�telleszMpoImageFile.tellcCsBz4z|j|jkr|j��Wntk
r0YnXW5d|_XdSr)rr�close�AttributeErrorrr	r	r
�
_close__fphs
zMpoImageFile._close__fpcCst|_|�|�|S)aC
        Transform the instance of JpegImageFile into
        an instance of MpoImageFile.
        After the call, the JpegImageFile is extended
        to be an MpoImageFile.

        This is essentially useful when opening a JPEG
        file that reveals itself as an MPO, to avoid
        double call to _open.
        )r�	__class__r)Z
jpeg_instancer"r	r	r
�adoptqs
zMpoImageFile.adopt)N)N)�__name__�
__module__�__qualname__�formatZformat_descriptionZ!_close_exclusive_fp_after_loadingrrr$�propertyr&r'rr2r5�staticmethodr7r	r	r	r
r&s


	rz.mpoz	image/mpoN)r*rrrZ_binaryrr-rrrrZ
register_saver;Zregister_extensionZ
register_mimer	r	r	r
�<module>s	c