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

g�
^+�@s�ddlmZddlmZmZzddlmZdZWnek
rHdZYnXdddd�Zddd�Z	d	d
d
d�Z
dd
�ZGdd�dej�Zdd�Z
dd�Ze�ejee�er�e�eje�ejr�e�eje
�e�ejd�e�ejd�dS)�)�BytesIO�)�Image�	ImageFile)�_webpTF)�RGBX�RGBA�RGB)r	rr	r)sVP8 sVP8XsVP8LcCsL|dd�dk}|dd�dk}|dd�tk}|rH|rH|rHtsDdSdSdS)	N�sRIFF��sWEBP�zEimage file could not be identified because WEBP support not installedT)�_VP8_MODES_BY_IDENTIFIER�	SUPPORTED)�prefixZis_riff_file_formatZis_webp_fileZis_valid_vp8_mode�r�5/usr/lib/python3/dist-packages/PIL/WebPImagePlugin.py�_accepts�rcs~eZdZdZdZdd�Zdd�Zedd��Zed	d
��Z	�fdd�Z
ddd�Zdd�Zdd�Z
�fdd�Z�fdd�Z�ZS)�
WebPImageFileZWEBPz
WebP imagecCs�tjsvt�|j���\}}}|_}}|r2||jd<|r@||jd<||f|_t|�|_dd|j	d|jfg|_
d|_dSt�|j���|_
|j
��\}}}}}}	||f|_||jd<|d?d	@|d
?d	@|d?d	@|d	@f\}
}}}
|||
|
f|jd<||_|	d
k�rdn|	|_|	|_g|_
|j
�d�}|j
�d�}|j
�d�}|�rN||jd<|�r^||jd<|�rn||jd<|jdd�|�d�dS)N�icc_profile�exif�raw�rrrr�loop��r
r�
backgroundrr	ZICCPZEXIFzXMP �xmpF)�reset)r�
HAVE_WEBPANIMZ
WebPDecode�fp�read�mode�infoZ_sizer�size�tile�	_n_framesZWebPAnimDecoder�_decoderZget_info�rawmodeZ	get_chunk�_reset�seek)�self�data�widthZheightrrZ
loop_countZbgcolorZframe_countr"�bg_a�bg_r�bg_g�bg_brrrr�_open*sL�








�


zWebPImageFile._opencCsd|jkrdSt|���S)Nr)r#�dictZgetexif�r+rrr�_getexif]s
zWebPImageFile._getexifcCs|jS�N�r&r4rrr�n_framesbszWebPImageFile.n_framescCs
|jdkS)Nrr7r4rrr�is_animatedfszWebPImageFile.is_animatedcs>tjst��|�S||jkr$td��|dkr4td��||_dS)Nz(attempted to seek beyond end of sequencerz!negative frame index is not valid)rr�superr*r&�EOFError�_WebPImageFile__logical_frame�r+�frame��	__class__rrr*js
zWebPImageFile.seekTcCs$|r|j��d|_d|_d|_dS)Nr���)r'r�_WebPImageFile__physical_frame�_WebPImageFile__loaded�_WebPImageFile__timestamp)r+rrrrr)ws

zWebPImageFile._resetcCsd|j��}|jd7_|dkr:|��|�d�td��|\}}||j}||_||8}|||fS)Nrrz(failed to decode next frame in WebP file)r'Zget_nextrBr)r*r;rD)r+Zretr,�	timestamp�durationrrr�	_get_next~s


zWebPImageFile._get_nextcCs8|j|krdS||jkr |��|j|kr4|��q dSr6)rBr)rGr=rrr�_seek�s


zWebPImageFile._seekcs�tjr�|j|jkr�|�|j�|��\}}}||jd<||jd<|j|_|jr^|jr^|j�	�t
|�|_dd|jd|jfg|_
t���S)NrErFrrr)rrrCr<rHrGr#r Z
_exclusive_fp�closerr$r(r%r:�load)r+r,rErFr?rrrJ�s



zWebPImageFile.loadcstjst���S|jSr6)rrr:�tellr<r4r?rrrK�s
zWebPImageFile.tell)T)�__name__�
__module__�__qualname__�formatZformat_descriptionr2r5�propertyr8r9r*r)rGrHrJrK�
__classcell__rrr?rr%s3


rc'Cs�|j��}t|�dg��}d}|g|D]}|t|dd�7}q(|dkrVt|||�dSd}d|krl|d}nTd|jkr�|jd}t|t�r�|�	�}|r�||d|dd�\}	}
}|	|
|df}|j�dd�}|j�d	d�}
|j�d
d�}|j�dd�}|j�d
d�}|j�dd�}d}|j�dd�}|j�dd�}|j�dd�}|j�dd�}|j�dd�}t|t
j��rt|��}|j�dd�}|�r�d}|dk�r�|�r�dnd}|dk�r�|�r�dnd}t|tt
f��r�t|�dk�s�tdd�|D���s�tdt|���|\}}}}|d>|d>B|d >B|d>B}t�|jd|jd||
|||||�	}d}d}|��} �z|g|D]�}t|dd�}!t|!�D]�}"|�|"�|��|}#|j}$|jtk�r�d!|jk�p�d"|jk�p�|jd#k�o�d!|j��k}%|%�r�d$nd%}$|�|$�}#|$d%k�r
d&}$|�|#�d'|$�||#jd|#jd|$|||�t|tt
f��rT|||7}n||7}|d7}�q��qnW5|�| �X|�d|ddd||d�|�|||�}&|&dk�r�td(��|� |&�dS))N�
append_imagesrr8r)rrrrr�rFr�
minimize_sizeF�kmin�kmax�allow_mixed�lossless�quality�P�methodr�rr�	��r
css|]}|dko|dkVqdS)r�Nr)�.0�vrrr�	<genexpr>�sz_save_all.<locals>.<genexpr>z<Background color is not an RGBA tuple clamped to (0-255): %srr
r�A�a�Prr	rr�1cannot write file as WebP (encoder returned None))!�encoderinfo�copy�list�get�getattr�_saver#�
isinstance�intZ
getpaletter�Exif�tobytes�tuple�len�all�OSError�strrZWebPAnimEncoderr$rKr*�rangerJr"�_VALID_WEBP_MODES�im�getpalettemode�convert�addZassemble�write)'ryr �filenamerhrRZtotalZimsrZpalette�r�g�brFrrTrUrVrW�verboserXrYr[rrrr/r0r1r.�encZ	frame_idxrEZcur_idxZnfr�idxr>r(�alphar,rrr�	_save_all�s�






�
���� �

��


�
r�c
Cs�|j�dd�}|j�dd�}|j�dd�}|j�dd�}t|tj�rL|��}|j�dd�}|jtkr�d	|jkp�d
|jkp�|jdko�d	|j�	�k}|�
|r�dnd
�}t�|��|j
d|j
d|t|�|j|||�	}	|	dkr�td��|�|	�dS)NrXFrYrZrr\rrrdrerfrr	rrrg)rhrkrnrrprqr"�_VALID_WEBP_LEGACY_MODESryrzr{rZ
WebPEncoder$�floatrur})
ryr r~rXrYrrrr�r,rrrrm@s8

���rmz.webpz
image/webpN)�iorr\rrrr�ImportErrorrxr�rrrr�rmZ
register_openrOZ
register_saverZregister_save_allZregister_extensionZ
register_mimerrrr�<module>s2

�

"