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

�

&ٜg�2��N�ddlmZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZmZddl
mZejd�ZerddlmZd	Zd
Zd"d�Z								d#d�Z								d#d
�Z								d#d�Z								d#d�ZGd�d�ZGd�de
j�Zd$d�Zd%d�Ze	j:ej<ee�e	j>ej<d�e	j@ej<e�e	jBej<d�e"dk(r�e#ejH�dkre%d�ejL�e'ejHdd�5Z(ee(�Z)e)jTdD]*Z+e+x\Z,Z-Z.e)_+e)j_de,�de-�de.�d���,e	jNejHd�5Z0e0j_d �ddd�ejbd!k(rejdd �ddd�yy#1swY�4xYw#1swYyxYw)&�)�annotationsN)�IO�)�Image�	ImageFile�PngImagePlugin�features)�	deprecate�jpg_2000)�Jpeg2KImagePluginsicns�c�T�tjd|jt��S)Nz>4sI)�struct�unpack�read�
HEADERSIZE)�fobjs �>/usr/local/lib/python3.12/site-packages/PIL/IcnsImagePlugin.py�
nextheaderr&s���=�=�����:�!6�7�7�c��|\}}|j|�|jd�}|dk7r
d}t|��t||dz|dz
f|�S)N�sz'Unknown signature, expecting 0x00000000)�seekr�SyntaxError�read_32)r�start_length�size�start�length�sig�msgs       r�read_32tr"*s[��#�O�U�F��I�I�e��
�)�)�A�,�C�
�!�!�7���#����4�%�!�)�V�a�Z�0�$�7�7rc
�B�|\}}|j|�|d|dz|d|dzf}|d|dz}||dzk(r0|j|�}tjd||dddd�}d|iStjd|d�}td�D�]}	g}
|}|dkDr�|jd�}|snx|d}
|
dzr8|
d	z
}|jd�}t|�D]}|
j
|��n%|
dz}|
j
|j|��||z}|dkrn|dkDr��|dk7rd
t|��d�}t|��tjd|d
j|
�dddd�}|jj|j|	���
d|iS)zn
    Read a 32bit RGB icon resource.  Seems to be either uncompressed or
    an RLE packbits-like scheme.
    r�r��RGB�rawN��}zError reading channel [z left]�Lr)rrr�
frombuffer�new�range�append�reprr�join�im�putband)rrrrr�
pixel_size�sizesq�indatar1�band_ix�data�	bytesleft�byte�byte_int�	blocksize�ir!�bands                  rrr7s���#�O�U�F��I�I�e���q�'�D��G�#�T�!�W�t�A�w�%6�7�J�
��]�Z��]�
*�F�
��!������6�"��
�
�
�e�Z����q�!�
L��8
�2�;��3�Y�Y�u�j�$�
/���Q�x�G��D��I��a�-��y�y��|������7���d�?� (�3��I��9�9�Q�<�D�"�9�-�����D�)�.�!)�1��I��K�K��	�	�)� 4�5��Y�&�	���>���a�-� �A�~�/��Y��/@��G��!�#�&�&��#�#�C��S�X�X�d�^�U�C�QR�TU�V�D��E�E�M�M�$�'�'�7�+�/ �0
�2�;�rc	���|d}|j|�|d|dz|d|dzf}|d|dz}tjd||j|�dddd�}d|iS)Nrr$rr*r'�A)rrr+r)rrrrr3r4r=s       r�read_mkr@ds~��
��O�E��I�I�e���q�'�D��G�#�T�!�W�t�A�w�%6�7�J�
��]�Z��]�
*�F����C��T�Y�Y�v�->��s�A�q�Q�D���;�rc�z�|\}}|j|�|jd�}|dddk(rI|j|�tj|�}t	j
|j�d|iS|dddk(s
|dddk(s|dk(r�ts
d	}t|��|j|�|j|�}tj|�}	tj|	�}t	j
|j�|jdk7r|jd�}d|iSd
}t|��)N�r
s�PNG

�RGBArs�O�Qs
�
sjP  
�
zQUnsupported icon subimage format (rebuild PIL with JPEG 2000 support to fix this)z Unsupported icon subimage format)rrr�PngImageFiler�_decompression_bomb_checkr�
enable_jpeg2k�
ValueError�io�BytesIOr�Jpeg2KImageFile�mode�convert)
rrrrrr r1r!�
jp2kstream�fs
          r�read_png_or_jpeg2000rOps,��#�O�U�F��I�I�e��
�)�)�B�-�C��2�A�w�,�,��	�	�%��
�
(�
(��
.��
�'�'����0���|���B�Q��&�&��r��7�)�)��9�9��6�
��S�/�!��	�	�%���Y�Y�v�&�
��J�J�z�"��
�
.�
.�q�
1��
�'�'����0�
�7�7�f�����F�#�B���|��0����o�rc���eZdZdefgdefgdefgdefgdefgdefdefdefgd	efgd
efgdefdefgd
efdefdefgdefgdefdefdefgd�Zdd�Zdd�Z	dd�Z
dd�Z	d			d d�Zy)!�IcnsFile�ic10�ic09�ic14�ic08�ic13�ic07sit32st8mksicp6�ic12sih32sh8mksicp5sil32sl8mk�ic11sicp4sis32ss8mk))�rZr$)rZrZr)�r[r$)r[r[r)r(r(r$)r(r(r)�@r\r)� r]r$)�0r^r)r]r]r)�r_r$)r_r_rc�`�i|_||_t|�\}}t|�s
d}t	|��t
}||krot|�\}}|dkr
d}t	|��|t
z
}|t
z}||f|j|<|j
|tj�||z
}||kr�nyy)z@
        fobj is a file-like object as an icns resource
        znot an icns filerzinvalid block headerN)	�dctrr�_acceptrrrrH�SEEK_CUR)�selfrr �filesizer!r<r;s       r�__init__zIcnsFile.__init__�s���
�����	�"�4�(�
��X��s�|�$�C��c�"�"����(�l�'��-�N�C���A�~�,��!�#�&�&�
��O�A���#�I��	�N�D�H�H�S�M��I�I�i����-�
��N�A��(�lrc��g}|jj�D]0\}}|D]&\}}||jvs�|j|��0�2|S�N)�SIZES�itemsrar.)rd�sizesr�fmts�fmt�readers      r�	itersizeszIcnsFile.itersizes�sQ�����*�*�*�*�,�J�D�$�#���V��$�(�(�?��L�L��&�� $�-�
�rc�V�|j�}|s
d}t|��t|�S)NzNo 32bit icon resources found)ror�max)rdrkr!s   r�bestsizezIcnsFile.bestsize�s+����� ���1�C��c�"�"��5�z�rc��i}|j|D]F\}}|jj|�}|��$|j||j||���H|S)z�
        Get an icon resource as {channel: array}.  Note that
        the arrays are bottom-up like windows bitmaps and will likely
        need to be flipped or transposed in some way.
        )rira�get�updater)rdrra�codern�descs      r�dataforsizezIcnsFile.dataforsize�sX���� �J�J�t�,�L�D�&��8�8�<�<��%�D����
�
�6�$�)�)�T�4�8�9�-��
rNc��|�|j�}nt|�dk(r|d|ddf}|j|�}|jd�}|r|S|dj	�}	|j|d�|S#t$rY|SwxYw)Nr$rrrCr&r?)rr�lenrxrt�copy�putalpha�KeyError)rdr�channelsr1s    r�getimagezIcnsFile.getimage�s����<��=�=�?�D�
��Y�!�^���G�T�!�W�a�(�D��#�#�D�)��
�\�\�&�
!��
��I�
�e�_�
!�
!�
#��	��K�K���
�&��	���	���	�	�s�'A=�=	B
�	B
)r�	IO[bytes]�return�None)r�zlist[tuple[int, int, int]])r��tuple[int, int, int])rr�r��dict[str, Image.Image]rh)rz-tuple[int, int] | tuple[int, int, int] | Noner��Image.Image)
�__name__�
__module__�__qualname__rOr"r@rrirfrorrrxr�rrrQrQ�s	�� �"6�7�8� �"6�7�8� �"6�7�8� �"6�7�8� �"6�7�8�
�*�+�
�h��
�g��
�
� 4�5�6�� 4�5�6���(�7�G�*<�=�
�*�+�
�g��
�g��
�
� 4�5�6�
�*�+�
�g��
�g��
�)
�E�6�.���EI��A��	�rrQc�b�eZdZdZdZdZd	d�Zed
d��Zejdd��Zdd
d�Z
y)�
IcnsImageFilea!
    PIL image support for Mac OS .icns files.
    Chooses the best resolution, but will possibly load
    a different size image if you mutate the size attribute
    before calling 'load'.

    The info dictionary has a key 'sizes' that is a list
    of sizes that the icns file has.
    �ICNSzMac OS icns resourcec�X�t|j�|_d|_|jj	�|j
d<|jj
�|_|jd|jdz|jd|jdzf|_y)NrCrkrr$r)	rQ�fp�icns�_modero�inforr�	best_sizer�rds r�_openzIcnsImageFile._open
s����T�W�W�%��	���
�!�Y�Y�0�0�2��	�	�'�����+�+�-����N�N�1�����q� 1�1��N�N�1�����q� 1�1�
��	rc��|jSrh)�_sizer�s rrzIcnsImageFile.sizes���z�z�rc��t|�dk(r&tddd�||jdvrT||_y|jdD]:}|d|dz|d|dzf}|d|dz}|d|dz|k(s�3||_yd	}t	|��)
Nr%z&Setting size to (width, height, scale)rBzload(scale)rkrr$rz2This is not one of the allowed sizes of this image)rzr
r�r�rG)rd�valuer�simple_size�scaler!s      rrzIcnsImageFile.sizes����u�:��?��>��M�R���	�	�'�*�*�"��
���	�	�'�*��"�1�g��Q��/��a��4��7�1B�B��#�A��%��(�2���q�>�E�!�H�,��5�!&�D�J��+�C����o�rNc�z�|�t|j�dk(rX|�'t|j�dk(r|jd}|�J�|jdd\}}||z||zf|_|||f|_tjj	|�}|j
�%|jj|jk(r|S|j�|jj|j�}|j	�}|j|_|j|_|j|_|S)Nr%r$)rzrr�r�load�_imr1�load_preparer�rrKr�)rdr��width�height�pxr1s      rr�zIcnsImageFile.load.s�����D�I�I��!� 3��}��T�Y�Y��1�!4��	�	�!����$�$�$� �I�I�b�q�M�M�E�6���
�v��~�5�D�I�"�F�E�1�D�N�
�[�[�
�
�d�
#���8�8��D�G�G�L�L�D�I�I�$=��I�����
�Y�Y�
�
����
/���W�W�Y���%�%����W�W��
��G�G��	��	r)r�r�)r��&tuple[int, int] | tuple[int, int, int])r�r�r�r�rh)r�z
int | Noner�zImage.core.PixelAccess | None)r�r�r��__doc__�format�format_descriptionr��propertyr�setterr�r�rrr�r��sJ����F�/��
�����
�[�[����$rr�c	��t|d�r|j�ddddddddd�}|jjd	g�D�cic]}|j|��}}i}t|j
��D]W}||vr||nj||f�}tj�}|j|d
�|j�||<�Yg}	|j�D].\}
}||}|	j|
tt|�z|f��0|j!t"�t}|tdt|	�zzz
}|t%d�|	D��z
}|j!t'j(d
|��|j!d�|j!t'j(d
tt|	�tzz��|	D]>}
|j!|
d�|j!t'j(d
|
d���@|	D]R}
|j!|
d�|j!t'j(d
|
d��|j!|
d��Tt|d�r|j�yycc}w)za
    Saves the image as a series of PNG files,
    that are then combined into a .icns file.
    �flushr(r[rZir]r\)rWrUrSrRrYrXrVrT�
append_images�pngr
c3�&K�|]	}|d���y�w)rNr�)�.0�entrys  r�	<genexpr>z_save.<locals>.<genexpr>qs����5�W�E�u�Q�x�W�s�z>isTOC rrr$N)�hasattrr��encoderinfortr��set�values�resizerHrI�save�getvaluerjr.rrz�write�MAGIC�sumr�pack)r1r��filenamerk�provided_images�size_streamsr�image�temp�entries�type�stream�file_lengthr�s              r�_saver�Is?��
�r�7��
���
���������	
�E�/1�n�n�.@�.@��RT�.U�V�.U��r�x�x��|�.U�O�V��L��E�L�L�N�#����&�
�D�!����D�$�<�(�	��z�z�|��
�
�
�4���!�]�]�_��T��$��G��k�k�m�
��d��d�#������j�3�v�;�6��?�@�$�
�H�H�U�O��K��:��C��L� 0�0�0�K��3�5�W�5�5�5�K��H�H�V�[�[��{�
+�,��H�H�W���H�H�V�[�[��z�C��L�:�,E�E�
F�G���
����q���
������T�5��8�,�-��
��
����q���
������T�5��8�,�-�
����q����
�r�7��
���
���MWs�Jc��|ddtk(S)Nr)r�)�prefixs rrbrb�s���"�1�:���rz.icnsz
image/icns�__main__r$z)Syntax: python3 IcnsImagePlugin.py [file]�rbrkzout-�-z.pngzout.png�windows)rr�r�ztuple[bytes, int])rr�rztuple[int, int]rr�r�r�)r1r�r�r�r�zstr | bytesr�r�)r��bytesr��bool)3�
__future__rrH�osr�sys�typingr�rrrr	�
_deprecater
�check_codecrFrr�rrr"rr@rOrQr�r�rb�
register_openr��register_extension�
register_save�
register_mimer�rz�argv�print�exit�openr��imfr�rr�r�r�r�r1�platform�	startfiler�rr�<module>r�se��&#�	�	�
�
��8�8�!�$��$�$�Z�0�
��#���
�
�8�
8�
�
8�#2�
8�:N�
8��
8�*�
�*�#2�*�:N�*��*�Z	�
�	�#2�	�:N�	��	�#�
�#�#2�#�:N�#��#�Lb�b�RG�I�'�'�G�T9�x�����M�(�(�-��A������-�-�w�7�����M�(�(�%�0�����M�(�(�,�7��z��
�3�8�8�}�q��
�9�:�����
�	
�c�h�h�q�k�4�	 �B��B����H�H�W�%�D�.2�2� �E�6�5�3�8��H�H�t�E�7�!�F�8�1�U�G�4�8�9�&��U�Z�Z������
$���G�G�I��%��<�<�9�$��B�L�L��#�
!�	 ��%�
$��
!�	 �s%�&A$H�
H�)H�H	�H�H$

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