Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/site-packages/PIL/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/site-packages/PIL/__pycache__/QoiImagePlugin.cpython-312.pyc

�

&ٜgW��,�ddlmZddlZddlmZmZddlmZd
d�Z	Gd�dej
�Z
Gd	�d
ej�Zeje
je
e	�ejde�ej e
jd�y)�)�annotationsN�)�Image�	ImageFile)�i32bec��|dddk(S)N�sqoif�)�prefixs �=/usr/local/lib/python3.12/site-packages/PIL/QoiImagePlugin.py�_acceptr
s���"�1�:�� � �c��eZdZdZdZdd�Zy)�QoiImageFile�QOIzQuite OK Imagec�0�t|jjd��s
d}t|��t	|jjd��t	|jjd��f|_|jjd�d}|dk(rdnd|_|jjdtj�tjdd	|j
z|jj��g|_
y)
Nr	znot a QOI filerr��RGB�RGBA�qoi)rr)r
�fp�read�SyntaxError�i32�_size�_mode�seek�os�SEEK_CURr�_Tile�tell�tile)�self�msg�channelss   r�_openzQoiImageFile._opens����t�w�w�|�|�A��'�"�C��c�"�"�������a��)�3�t�w�w�|�|�A��+?�?��
��7�7�<�<��?�1�%��&�!�m�U���
������Q����$��_�_�U�F�T�Z�Z�,?�������P�Q��	rN)�return�None)�__name__�
__module__�__qualname__�format�format_descriptionr&r
rrrrs��
�F�)��Rrrc�>�eZdZUdZdZded<iZded<d	d�Zd
d�Zy)�
QoiDecoderTNzbytes | bytearray | None�_previous_pixelzdict[int, bytes | bytearray]�_previously_seen_pixelsc�r�||_|\}}}}|dz|dzz|dzz|dzzdz}||j|<y)Nr����@)r0r1)r#�value�r�g�b�a�
hash_values       r�_add_to_previous_pixelsz"QoiDecoder._add_to_previous_pixels+sO��$����
��1�a���!�e�a�!�e�m�a�!�e�+�a�"�f�4��:�
�38��$�$�Z�0rc
���
��j�J�i�_�jtd��t�}t	j
�j�}�jj�jjz|z}t|�|k�r,�jjd�d}|dk(rB�jr6t�jjd���jddz}�n�|dk(r�jjd�}�nu|dz	}|dk(r,|d	z}�jj|td
��}�n?|dk(rz�jrnt�jd|dzdz	zdz
d
z�jd|dzdz	zdz
d
z�jd|dzzdz
d
z�jdf�}n�|dk(r��jrv�jjd�d}	|d	zdz
�
|	dzdz	dz
}
|	dzdz
}tt�
�fd�t|
d|f�D���}|�jddz
}n9|dk(r4�jr(|d	zdz}�j}|dk(r|dd}|||zz
}���j�|dk(r|dd}||z
}t|�|kr��,�j!|�y)N)rrr�rr�rr?r	��?)rrrr�0���� ����c3�T�K�|]\}}�j|�z|zdz���!y�w)rEN)r0)�.0�i�diff�
diff_greenr#s   ��r�	<genexpr>z$QoiDecoder.decode.<locals>.<genexpr>[s7������+N���4�"�1�1�!�4�z�A�D�H�C�O�+N�s�%()���r)�fdr1r=�	bytearrayr�getmodebands�mode�state�xsize�ysize�lenrr0�get�tuple�	enumerate�
set_as_raw)r#�buffer�data�bands�dest_length�byter7�op�op_index�second_byte�diff_red�	diff_blue�
run_lengthrOs`            @r�decodezQoiDecoder.decode2s�����w�w�"�"�"�')��$��$�$�Y�~�%>�?��{���"�"�4�9�9�-���j�j�&�&����)9�)9�9�E�A���$�i�+�%��7�7�<�<��?�1�%�D��z�!�d�&:�&:�!�$�'�'�,�,�q�/�2�T�5I�5I�!�"�5M�M����#������Q����Q�Y����7�#�j�0�H� �8�8�<�<� �)�L�"9��E��1�W��!5�!5�%�!�1�1�!�4��
�9J�q�8P�Q�TU�U�!�"�!�1�1�!�4��
�9J�q�8P�Q�TU�U�!�"�!�1�1�!�4��z�8I�J�Q�N�RU�U� �0�0��3�
�	�E��1�W��!5�!5�"&�'�'�,�,�q�/�!�"4�K�"&��"3�r�!9�J�!,�z�!9�a� ?�1�D�H�!,�z�!9�Q� >�I�%���+4�h��9�5M�+N����E��T�1�1�!�"�5�5�E��1�W��!5�!5�"&��"3�q�!8�J� �0�0�E���z� %�b�q�	���E�J�.�.�D���(�(��/���z��b�q�	���E�M�D�c�$�i�+�%�d	
�����r)r7zbytes | bytearrayr'r()r^z$bytes | Image.SupportsArrayInterfacer'ztuple[int, int])	r)r*r+�	_pulls_fdr0�__annotations__r1r=rir
rrr/r/&s(���I�04�O�-�4�<>��9�>�9�<rr/rz.qoi)r�bytesr'�bool)�
__future__rr�rr�_binaryrrr
r�	PyDecoderr/�
register_openr,�register_decoder�register_extensionr
rr�<module>rus���#�	��!�!�R�9�&�&�R�$H��$�$�H�V����L�'�'��w�?�����u�j�)������,�,�f�5r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists