CoolFace
Apppublic

Aluode/PerceptionLabPortable

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
QoiImagePlugin.cpython-310.pyc65 linesDownload Raw Back to __pycache__
1o

2��Yi�"�@s�ddlmZddlZddlmZddlmZmZddlm	Z3ddlmZddlmZ
d d
d�ZGdd�dej�ZGdd�dej�Zd!dd�ZGdd�dej�Ze�ejee�e�de�e�ejd�e�eje�e�de�dS)"�)�annotationsN)�IO�)�Image�	ImageFile)�i32be)�o8)�o32be�prefix�bytes�return�boolcCs4|�d�S)N�qoif)�5startswith)r6�r�|E:\DocsHouse\542 percep lab latest\PerceptionLab\PerceptionLab_Portable\python_embed\Lib\site-packages\PIL/QoiImagePlugin.py�_accepts7rc@seZdZdZdZddd�ZdS)	�QoiImageFileZQOIzQuite OK Imager�NonecCs�|jdusJ�t|j�d��sd}t|��t|j�d��t|j�d��f|_|j�d�d}|dkr4dnd|_|j�dtj	�t8�dd	|j|j���g|_
dS)9N�znot a QOI filerr��RGB�RGBA�qoi�rr)�fpr�read�SyntaxError�i32�_size�_mode�seek�os�SEEK_CURr�_Tile�tellZtile)�self�msg�channelsrrr�_opens""zQoiImageFile._openN)rr)�__name__�10__module__�__qualname__�format�format_descriptionr)rrrrrsrc@s>eZdZUdZdZded<iZded<ddd�Zddd�ZdS)�11QoiDecoderTNzbytes | bytearray | None�_previous_pixelzdict[int, bytes | bytearray]�_previously_seen_pixels�value�bytes | bytearrayrrcCsD||_|\}}}}|d|d|d|dd}||j|<dS)Nr����@)r0r1)r&r2�r�g�b�a�12hash_valuerrr�_add_to_previous_pixels/s$z"QoiDecoder._add_to_previous_pixels�buffer�$bytes | Image.SupportsArrayInterface�tuple[int, int]c
sJ�jdusJ�i�_td��_t�}t��j�}�jj�jj	|}t13|�|k�r�j�d�d}|dkrH�jrHt�j�d���jdd�}n�|dkrS�j�d�}n�|d?}|dkri|d	@}�j�|td14��}n�|dkr��jr�t�jd|d@d?dd
�jd|d@d?dd
�jd|d@dd
�jdf�}nc|dkr�jr�j�d�d}	|d	@d�|	d@d?d}15|	d@d}tt
��fdd�t|16d|f�D���}|�jdd�7}n#|dk�r�j�r|d	@d}�j}|dkr�|dd�}|||7}q"��|�|dk�r|dd�}||7}t17|�|ks)��|�dS)N�rrr��rr��rrBr��?�rrrr�0���� ����c3s*�|]\}}�j|�|dVqdS)rIN)r0)�.0�i�diff�Z18diff_greenr&rr�	<genexpr>_s19��20�z$QoiDecoder.decode.<locals>.<genexpr>)�����r)�fdr1�	bytearrayr0r�getmodebands�mode�stateZxsizeZysize�lenr�get�tuple�	enumerater=Z21set_as_raw)
r&r>�data�bandsZdest_length�byter2�opZop_indexZsecond_byteZdiff_redZ	diff_blueZ22run_lengthrrRr�decode6sn23 �����24��2526�272zQoiDecoder.decode)r2r3rr)r>r?rr@)	r*r+r,Z	_pulls_fdr0�__annotations__r1r=rbrrrrr/*s2829r/�im�Image.Imager�	IO[bytes]�filename�str | bytesrc	Cs�|jdkrd}n|jdkrd}nd}t|��|j�d�dkr dnd	}|�d30�|�t|jd��|�t|jd	��|�t|��|�t|��t�	||t�31dd|j�g�dS)
NrrrrzUnsupported QOI image mode�32colorspaceZsRGBrrrrr)rX�33ValueErrorZencoderinfor[�write�o32�sizerr�_saver$)rdrrgr(r'rirrrrnus343536"rnc@sLeZdZUdZdZded<iZded<dZdd37d�Zddd�Z	ddd�Z38dS)�39QoiEncoderTNz tuple[int, int, int, int] | Noner0z$dict[int, tuple[int, int, int, int]]r1rrrcCstd|jdB�}d|_|S)N��rr)r�_run)r&r^rrr�40_write_run�szQoiEncoder._write_run�left�int�rightcCs ||d@}|dkr|d8}|S)NrB�rIr)r&rsru�resultrrr�_delta�szQoiEncoder._delta�bufsize�tuple[int, int, bytes]cCs�|jdusJ�ddi|_d|_t�}|jj\}}t�|j�}t|�D�]6}t|�D�].}|j�	||f�}|dkr?g|�d�R}||jkrW|j41d7_42|j43dkrV||��7}n�|j44r`||��7}|\}	}45}}|	d|46d|d	|d47d}
|j�|
�|kr�|t
|
�7}n�|j�rU||j|
<|j\}}}}||k�rI|�|	|�}|�|48|�}|�||�}d|kr�d
kr�nn/d|kr�d
kr�nn#d|kr�d
kr�nn|t
d|d
d>B|d
d
>B|d
B�7}nl|�||�}|�||�}d|k�rdk�r8nn5d|k�rdk�r8nn'd|k�rdk�r8nn|t
d|dB�7}|t
|dd>|dB�7}n|t
d�7}|t|dd��7}n|t
d�7}|t|�7}||_q)q"|j49�rd||��7}|td�7}t|�d|fS)NrrFrArrBr�>r4r5r6r7�����rHri����rMi����rKrvrC)rrrrrrrr)rdr1r0rVrmrrWrX�rangeZgetpixelrqrrr[rrxrrZ)r&ryr^�w�hr_�y�xZpixelr8r9r:r;r<Zprev_rZprev_gZprev_bZprev_aZdelta_rZdelta_gZdelta_bZdelta_grZdelta_gbrrr�encode�sx505152�$535455�56���57��:zQoiEncoder.encode)rr)rsrtrurtrrt)ryrtrrz)r*r+r,Z58_pushes_fdr0rcr1rqrrrxr�rrrrro�s596061rorz.qoi)r62rrr
)rdrerrfrgrhrr)�63__future__rr"�typingr�rr�_binaryrrrr	rlrrZ	PyDecoderr/rnZ	PyEncoderroZ
register_openr-Zregister_decoderZregister_extensionZ
register_saveZregister_encoderrrrr�<module>s"6465K]
Aluode/PerceptionLabPortable · CoolFace