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__/IcoImagePlugin.cpython-312.pyc

�

&ٜg�0����ddlmZddlZddlmZddlmZmZddlm	Z	m
Z
ddlmZm
Z
mZmZddlmZdd	lmZdd
lmZddlmZddlmZd
Zdd�Zdd�ZGd�de
�ZGd�d�ZGd�dej�Ze
j@ejBee�e
jDejBe�e
jFejBd�e
jHejBd�y)�)�annotationsN)�BytesIO)�ceil�log)�IO�
NamedTuple�)�BmpImagePlugin�Image�	ImageFile�PngImagePlugin)�i16le)�i32le)�o8)�o16le)�o32lesc�&�|jt�|jjd�dk(}|jjdgd��}g}|g|jjdg�z}|j\}}tt
|��D�]}	|	d|kDs|	d|kDs|	ddkDs|	ddkDr�%|D]�}
|
j|	k7r�|j|
�|r�tj|
jd}|g}|D]Y}
|
j|	k7r�tj|
jd}||vs�8|j|
�|j|��[��
j�}|j|	tjjd�	�|j|��� |jt!t#|���|j%�t#|�d
zz}|D�]}|j\}}|jt'|dkr|nd��|jt'|dkr|nd��|r tj|jddnd\}}|jt'|��|jd�|jd
�|jt!|��t)�}|r_|j+|d�|dk7rZtj,d	�}t/j0||t/j2dd|	zdd�g�n|j+|d�|j5d�|j7�}|r|ddt9|dz�z|ddz}t#|�}|jt9|��|jt9|��|j%�}|j5|�|j|�||z}|j5|���y)N�
bitmap_format�bmp�sizes))�r)�r)� r)�0r)�@r)�r)�r�
append_imagesrr	r)�reducing_gapr)rr�s�dibr�1�raw�rr)r"r����png���)�write�_MAGIC�encoderinfo�get�size�sorted�set�appendr
�SAVE�mode�copy�	thumbnailr�
Resampling�LANCZOS�o16�len�tellrr�save�newr�_save�_Tile�seek�read�o32)�im�fp�filenamerr�frames�provided_ims�width�heightr.�provided_im�bits�	bits_used�other_im�frame�offset�colors�image_io�and_mask�image_bytes�	bytes_len�currents                      �=/usr/local/lib/python3.12/site-packages/PIL/IcoImagePlugin.pyr=r=+sq���H�H�V��
�.�.�
�
�_�
-��
6�C��N�N����R�
�E��F��4�"�.�.�,�,�_�b�A�A�L��G�G�M�E�6��s�5�z�"����7�U�?�d�1�g��.�$�q�'�C�-�4��7�S�=��'�K����4�'���M�M�+�&��%�*�*�;�+;�+;�<�Q�?��!�F�	� ,�H��}�}��,� �)�.�.�x�}�}�=�a�@�D��9�,��
�
�h�/�!�(�(��.�!-�
�!(�& �$�$�&�E��O�O�D�%�"2�"2�":�":��O�N��M�M�%� �3#�4�H�H�S��V��
��
�W�W�Y��V��r�)�
)�F����
�
�
��v�
����U�S�[�E�a�0�1�
����f�s�l�F��2�3�>A�~�*�*�5�:�:�6�q�r�:�w���f�
����F���
�����
�����
����T����9����J�J�x��'��r�z� �9�9�S�$�/��������_�_�U�F�T�M�1�l�K�L��
�J�J�x��'��
�
�a���m�m�o���%�b�q�/�C���
�O�;�k�"�#�>N�N�K���$�	�
����Y�� �
����V����'�'�)��
�����
������)�#��
�����I�c��|ddtk(S)N�)r+)�prefixs rU�_acceptrZxs���"�1�:���rVc�|�eZdZUded<ded<ded<ded<ded<ded<ded<ded	<d
ed<ded<ded
<y)�
IconHeader�intrGrH�nb_color�reserved�planes�bppr.rN�tuple[int, int]�dim�square�color_depthN)�__name__�
__module__�__qualname__�__annotations__�rVrUr\r\|s;���J��K��M��M��K�	�H�

�I��K�	���K��rVr\c�8�eZdZdd�Zdd�Zd	d
d�Zd	dd�Zdd�Zy)
�IcoFilec��|jd�}t|�s
d}t|��||_g|_t|d�|_t|j�D]�}|jd�}|dxsd}|dxsd}|d}t|d�}t||||d	t|d�t|d�t|d
�t|d�||f||z|xs |dk7xrtt|d��xsd��}	|jj|	���t|jd
���|_t|jd�d��|_y)zL
        Parse image from file-like object containing ico file data
        �znot an ICO filerXrrrr	r(�r'r))rGrHr^r_r`rar.rNrcrdrec��|jS�N)re��xs rU�<lambda>z"IcoFile.__init__.<locals>.<lambda>�s��a�m�mrV)�keyc��|jSrq)rdrrs rUrtz"IcoFile.__init__.<locals>.<lambda>�s��a�h�hrVT)ru�reverseN)r@rZ�SyntaxError�buf�entry�i16�nb_items�ranger\�i32rrr1r/)
�selfry�s�msg�irGrHr^ra�icon_headers
          rU�__init__zIcoFile.__init__�sH��
�H�H�Q�K���q�z�#�C��c�"�"������
��A�q�	��
��t�}�}�%�A������A��a�D�K�C�E��q�T�[�S�F���t�H��a��)�C�$���!��1���1�a�y���1�I���A�Y��1�b�z��F�O��v�~� �T�H��M�$L�d�3�x��;K�6L�T�QT��K� 
�J�J���k�*�5&�8�D�J�J�,C�D��
��D�J�J�,>��M��
rVc�l�|jD�chc]}|j|jf��c}Scc}w)zI
        Get a set of all available icon sizes and color depths.
        )rzrGrH)r�hs  rUrz
IcoFile.sizes�s-��.2�Z�Z�8�Z�����!�(�(�#�Z�8�8��8s�1c��t|j�D],\}}||jk(s�|dus||jk(s�*|cSy)NFr)�	enumeraterzrcre)rr.rar�r�s     rU�
getentryindexzIcoFile.getentryindex�s?���d�j�j�)�D�A�q��q�u�u�}�#��,�#����2F���*�rVc�D�|j|j||��S)z,
        Get an image from the icon
        )rMr�)rr.ras   rU�getimagezIcoFile.getimage�s ���z�z�$�,�,�T�3�7�8�8rVc��|j|}|jj|j�|jj	d�}|jj|j�|ddt
jk(r@tj|j�}tj|j�|Stj|j�}tj|j�|jdt|jddz�f|_|jd\}}}}t!j"|d|jz||�|jd<|j$dk(r�|jj|�|jj	|jd|jdzdz�d	dd�}		tj&d
|j|	dd�}
n�|jd}|dzdkDr|d|jddzz
z
}t||jdzdz�}|j|jz|z
}
|jj|
�|jj	|�}	tj&d
|j|ddt|dz�df�}
|
r"|j-d�}|j/|
�|S#t($rt j*rd}
n�Y�EwxYw#t($rt j*rd}
n�Y�hwxYw)z-
        Get an image from frame idx
        r'Nrr	r(r$rrXro�Lr#)r�rr%r"z1;Ir%�RGBA)rzryr?rNr@r
r+�PngImageFiler�_decompression_bomb_checkr.r
�DibImageFiler]�_size�tilerr>ra�
frombuffer�
ValueError�LOAD_TRUNCATED_IMAGES�convert�putalpha)r�idx�header�datarB�d�e�o�a�alpha_bytes�mask�w�total_bytes�and_mask_offset�	mask_datas               rUrMz
IcoFile.frame�s���
���C������
�
�f�m�m�$��x�x�}�}�Q������
�
�f�m�m�$����8�~�,�,�,��,�,�T�X�X�6�B��+�+�B�G�G�4�V�	�Q �,�,�T�X�X�6�B��+�+�B�G�G�4�����
�C�����
�Q��$7�8�B�H������J�A�q�!�Q�"����F�R�W�W�,<�a��C�B�G�G�A�J��z�z�R�����
�
�a� �"�h�h�m�m�B�G�G�A�J������,C�a�,G�H���A��N��� �+�+�����#��$��D��G�G�A�J����F�a�<���r�w�w�q�z�B��/�/�A�
"�1�r�w�w�q�z�>�Q�"6�7��"(�-�-�&�+�+�"=��"K�����
�
�o�.� �H�H�M�M�+�6�	�� �+�+�����!����A��E�
�B�/��D� ��Z�Z��'�����D�!��	��W"�� �6�6�#������<"�� �6�6�#�����s$�*#L�.2L)�L&�%L&�)M	�M	N)ry�	IO[bytes]�return�None)r�zset[tuple[int, int]])F)r.rbra�
int | boolr�r])r.rbrar�r��Image.Image)r�r]r�r�)rfrgrhr�rr�r�rMrjrVrUrlrl�s��0N�d9��9�ZrVrlc�h�eZdZdZdZdZd
d�Zedd��Zejdd��Zd
d�Z
dd�Zy	)�IcoImageFilea�
    PIL read-only image support for Microsoft Windows .ico files.

    By default the largest resolution image in the file will be loaded. This
    can be changed by altering the 'size' attribute before calling 'load'.

    The info dictionary has a key 'sizes' that is a list of the sizes available
    in the icon file.

    Handles classic, XP and Vista icon formats.

    When saving, PNG compression is used. Support for this was only added in
    Windows Vista. If you are unable to view the icon in Windows, convert the
    image to "RGBA" mode before saving.

    This plugin is a refactored version of Win32IconImagePlugin by Bryan Davis
    <casadebender@gmail.com>.
    https://code.google.com/archive/p/casadebender/wikis/Win32IconImagePlugin.wiki
    �ICOzWindows Iconc��t|j�|_|jj�|jd<|jj
dj|_|j�y)Nrr)	rlrC�icor�inforzrcr.�load�rs rU�_openzIcoImageFile._openHsN���4�7�7�#���!�X�X�^�^�-��	�	�'���H�H�N�N�1�%�)�)��	��	�	�rVc��|jSrq)r�r�s rUr.zIcoImageFile.sizeNs���z�z�rVc�N�||jdvr
d}t|��||_y)Nrz2This is not one of the allowed sizes of this image)r�r�r�)r�valuer�s   rUr.zIcoImageFile.sizeRs)����	�	�'�*�*�F�C��S�/�!���
rVc���|j�B|jj|jk(rtjj	|�S|j
j
|j�}|j	�|j|_|j|_|jr|j|_	|j|jk7r�tjd�|j
j|j�}t|jd�}|j||<t|�|jd<|j|_y)NzImage was not the expected sizer)�_imrBr.rr�r�r�r3�_mode�palette�warnings�warnr��listr�r0)rrB�indexrs    rUr�zIcoImageFile.loadYs����8�8��D�G�G�L�L�D�I�I�$=��;�;�#�#�D�)�)�
�X�X�
�
�t�y�y�
)��
���	��%�%����W�W��
�
�:�:��:�:�D�L�
�7�7�d�i�i���M�M�;�<��H�H�*�*�4�9�9�5�E�����7�+�,�E��7�7�E�%�L�!$�U��D�I�I�g�����D�I�rVc��yrqrj)r�poss  rU�	load_seekzIcoImageFile.load_seekos��	
rVN)r�r�)r�rb)r�rbr�r�)r�zImage.core.PixelAccess | None)r�r]r�r�)rfrgrh�__doc__�format�format_descriptionr��propertyr.�setterr�r�rjrVrUr�r�0sO���(�F�'�������
�[�[�����,
rVr�z.icozimage/x-icon)rBr�rCr�rDzstr | bytesr�r�)rY�bytesr��bool)%�
__future__rr��ior�mathrr�typingrr�r
rrr
�_binaryrr{rr~rrr8rrAr+r=rZr\rlr��
register_openr��
register_save�register_extension�
register_mimerjrVrU�<module>r�s���.#����!�>�>�!�!��!�!�

��J�Z ����_�_�LB
�9�&�&�B
�R����L�'�'��w�?�����L�'�'��/������,�,�f�5�����L�'�'��8rV

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