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

�

&ٜg�'��6�ddlmZddlZddlZddlZddlmZmZmZm	Z	ddl
mZmZdd�Z
gd�Zdd�Zdd	�ZGd
�dej�Zd d!d�Zd"d
�Zd#d�Zd#d�Zej,ej.e�ej0ej.e�edk(�rqeej6�dkred�ej:�ej6dZee�sed�ej:�ej>e�5Z ede ���ede j.���ede jB���ede jD���edd��ee jG��eej6�dkDrxej6dZ$e jKejLjN�Z edejPjSe��de$�d��e jUe$ej.�ddd�yy#1swYyxYw)$�)�annotationsN)�IO�
TYPE_CHECKING�Any�cast�)�Image�	ImageFilec�X�	t|�}||z
dk(ryy#ttf$rYywxYw)Nrr)�int�
ValueError�
OverflowError)�f�is  �@/usr/local/lib/python3.12/site-packages/PIL/SpiderImagePlugin.py�isIntr-s8�����F���q�5�A�:�����
�&����s��)�))r�i����i�i��i��c���d|z}dD]}t||�r�yt|d�}|tvryt|d�}t|d�}t|d�}|||zk7ry|S)N��c)r����
��rrrrr)rr�iforms)�t�hr�iform�labrec�labbyt�lenbyts       r�isSpiderHeaderr$Asx��
��	�A�
&���Q�q�T�{��'�
��!��I�E��F���
��2��Z�F�
��2��Z�F�
��2��Z�F�
�&�6�/�"���M�c��t|d�5}|jd�}ddd�tjd�}t	|�}|dk(r!tjd|�}t	|�}|S#1swY�RxYw)N�rb�\z>23frz<23f)�open�read�struct�unpackr$)�filename�fprr�hdrlens     r�
isSpiderImager0Usi��	
�h��	���G�G�B�K��
��
�
�f�a� �A�
�A�
�F�
��{��M�M�&�!�$����"���M�
�	�s�A0�0A9c�v�eZdZdZdZdZdd�Zedd��Zedd��Z	dd�Z
dd�Zddd	�Ze
rd
dlmZdd�Zy
)�SpiderImageFile�SPIDERzSpider 2D imageFc��d}|jj|�}	d|_tjd|�}t|�}|dk(r(d|_tjd|�}t|�}|dk(r
d}t
|��	d|z}t|d�}|dk7r
d	}t
|��t|d
�t|d�f|_	t|d�|_
t|d
�|_|jdk(r|jdk(r
|}	d|_n�|jdkDr[|jdk(rLt|d
�t|d�zdz|_
||_t|d�|_|dz}	d|_nB|jdk(r&|jdkDr||jz}	d|_
n
d}t
|��|jrd|_nd|_d|_t%j&dd|j(z|	|j �g|_|j|_y#tj$r}d}t
|�|�d}~wwxYw)N�lrz>27frz<27fznot a valid Spider filerrznot a Spider 2D imagerr����z inconsistent stack header valueszF;32BFzF;32F�F�raw�rr)r.r*�	bigendianr+r,r$�SyntaxError�errorr�_size�istack�	imgnumber�_nimages�imgbytesr/�	stkoffset�rawmode�_moder
�_Tile�size�tile�_fp)
�self�nrrr/�msg�err �offsets
          r�_openzSpiderImageFile._openes�����G�G�L�L��O��
	*��D�N��
�
�f�a�(�A�#�A�&�F���{�!"����M�M�&�!�,��'��*����{�/��!�#�&�&��
�A�I���A�a�D�	���A�:�)�C��c�"�"���2��Z��Q�q�T��*��
��!�B�%�j����Q�r�U�����;�;�!�����!� 3��F��D�M�
�[�[�1�_����1�!4���"��J��Q�q�T��2�Q�6�D�M� �D�K���"��J�D�M��a�Z�F��D�N�
�[�[�A�
�$�.�.�1�"4��d�n�n�,�F��D�K�4�C��c�"�"��>�>�#�D�L�"�D�L���
��_�_�U�F�T�Y�Y�,>�����U�V��	��7�7����S�|�|�	*�+�C��c�"��)��	*�s�A'H0�0I�I�Ic��|jS�N�rC�rLs r�n_frameszSpiderImageFile.n_frames�s���}�}�r%c� �|jdkDS�NrrTrUs r�is_animatedzSpiderImageFile.is_animated�s���}�}�q� � r%c�@�|jdkry|jdz
S)Nrr)rBrUs r�tellzSpiderImageFile.tell�s ���>�>�A����>�>�A�%�%r%c�H�|jdk(r
d}t|��|j|�sy|j||j|jzzz|_|j|_|jj|j
�|j�y)Nrz#attempt to seek in a non-stack file)
rA�EOFError�_seek_checkr/rDrErKr.�seekrQ)rL�framerNs   rr_zSpiderImageFile.seek�sx���;�;�!��7�C��3�-������&�����u����d�m�m�0K�'L�L����(�(��������T�^�^�$��
�
�r%c����|j�}t|dt�sJ�ttttf|�\}}d�||k7r|||z
z��|z�|j��fd��j
d�S)Nrrc���|�z�zSrS�)r�b�ms ��r�<lambda>z.SpiderImageFile.convert2byte.<locals>.<lambda>�s
���A��E�A�Ir%�L)�
getextrema�
isinstance�floatr�tuple�point�convert)rL�depth�extrema�minimum�maximumrdres     @@r�convert2bytezSpiderImageFile.convert2byte�s����/�/�#���'�!�*�e�,�,�,���e�U�l� 3�W�=�������g����7�*�+�A�
�B��L���z�z�-�.�6�6�s�;�;r%r��ImageTkc�P�ddlm}|j|j�d��S)Nrrs�)�palette)�rt�
PhotoImagerr)rLrts  r�tkPhotoImagezSpiderImageFile.tkPhotoImage�s$����!�!�$�"3�"3�"5�s�!�C�Cr%N)�return�None)r{r)r{�bool)r`rr{r|)�)rnrr{�Image.Image)r{zImageTk.PhotoImage)�__name__�
__module__�__qualname__�format�format_description�!_close_exclusive_fp_after_loadingrQ�propertyrVrYr[r_rrrrxrtrzrcr%rr2r2`s^��
�F�*��(-�%�9�v�����!��!�&�	�<���Dr%r2c��|�t|�dkryg}|D]�}tjj|�st	d|����1	tj|�5}t|t�sJ�|j�}ddd�|jd<|j|���|S#1swY�-xYw#t$rt|�st	|�d��Y��wxYw)zJcreate a list of :py:class:`~PIL.Image.Image` objects for use in a montageNrzunable to find z is not a Spider image filer-)�len�os�path�exists�printr	r)rir2rr�	Exceptionr0�info�append)�filelist�	byte_imgs�img�im�byte_ims     r�loadImageSeriesr��s�����3�x�=�1�,���I����w�w�~�~�c�"��O�C�5�)�*��	����C��B�!�"�o�6�6�6��/�/�+��!�$'����Z� �����!����!����	� ��%����8�9�:��	�s*�B8�#B,�B8�,B5	�1B8�8"C�Cc���|j\}}|dz}td|z�}d|zdk7r|dz
}||z}t|dz�}|dkrgSdg|z}d|d<t|�|d<t|�|d	<d|d
<t|�|d<t|�|d<t|�|d
<t|�|d<|dd}|jd�|D�cgc]}t	j
d|���c}Scc}w)Nr8irrrgg�?rrrrrrr)rIrrjr�r+�pack)	r��nsam�nrowr#r!r"�nvalues�hdr�vs	         r�makeSpiderHeaderr��s�����J�D�$�
�A�X�F�
����
�F��f�}����!���
�f�_�F��&�1�*�o�G���|��	��%�'�/�C��C��F�
�4�[�C��F�
�4�[�C��F�
�C��F��D�k�C��G��F�m�C��G��F�m�C��G��F�m�C��G��a�b�'�C��J�J�s�O�),�-��A�F�K�K��Q���-�-��-s�C(c
�2�|jddk7r|jd�}t|�}t|�dkr
d}t	|��|j|�d}t
j||t
jdd|jzd|�g�y)Nrr:rvzError creating Spider headerzF;32NFr;r<)
�modermr�r��OSError�
writelinesr
�_saverHrI)r�r.r-r�rNrFs      rr�r�
s���	�w�w�q�z�S��
�Z�Z��_��
�2�
�C�
�3�x�#�~�,���c�l���M�M�#���G�
�O�O�B��Y�_�_�U�F�R�W�W�4D�a��Q�R�Sr%c���tjj|�d}t|t�r|j�n|}t
jtj|�t|||�yrX)r�r��splitextri�bytes�decoder	�register_extensionr2r�r�)r�r.r-�filename_ext�exts     r�_save_spiderr�sV���7�7�#�#�H�-�a�0�L�#-�l�E�#B�,�
�
�
��C�	���_�3�3�S�9�	�"�b�(�r%�__main__rz7Syntax: python3 SpiderImagePlugin.py [infile] [outfile]z$input image must be in Spider formatzimage: zformat: zsize: zmode: z
max, min: � )�endzsaving a flipped version of z as )rrr{r)rztuple[float, ...]r{r)r-�strr{rrS)r�zlist[str] | Noner{zlist[Image.Image] | None)r�rr{zlist[bytes])r�rr.z	IO[bytes]r-zstr | bytesr{r|)+�
__future__rr�r+�sys�typingrrrrrxr	r
rrr$r0r2r�r�r�r��
register_openr��
register_saver�r��argvr��exitr-r)r�rIr�rh�outfile�	transpose�	Transpose�FLIP_LEFT_RIGHTr��basename�savercr%r�<module>r�s���F#�	�
�
�/�/���
$���(�lD�i�)�)�lD�h�6.�<
T� �����O�*�*�O�<�����O�*�*�L�9��z��
�3�8�8�}�q��
�G�H�����
��x�x��{�H���"�
�4�5�����
�	����H�	��
���t�n��
������$�%�
��r�w�w�i� �!�
��r�w�w�i� �!�
�l��$�
�b�m�m�o���s�x�x�=�1���h�h�q�k�G����e�o�o�=�=�>�B��.�r�w�w�/?�/?��/I�.J�K��Y�a�!�
�
�G�G�G�_�3�3�4�#
�	��
�	�s
�
C8H�H

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