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

�

&ٜgL�	���ddlmZddlZddlZddlmZddlmZmZddl	m
Zddl	mZdd�Z
d	d	d
d
ddd
dd�ZGd�dej�Zdd�ZGd�dej"�Zej&de�ej(ej*ee
�ej,ej*e�ej.ej*d�ej0ej*gd��y)�)�annotationsN)�IO�)�Image�	ImageFile)�i16be)�o8c�>�t|�dk\xrt|�dk(S)N���)�len�i16)�prefixs �=/usr/local/lib/python3.12/site-packages/PIL/SgiImagePlugin.py�_acceptr"s���v�;�!��2��F��s� 2�2��L�L;16B�RGBzRGB;16B�RGBAzRGBA;16B))rrr)rrr)rrr)rrr)r�r)rrr)rr�)rrrc��eZdZdZdZdd�Zy)�SgiImageFile�SGIzSGI Image File Formatc��|j�J�d}|jj|�}t|�s
d}t|��|d}|d}t	|d�}t	|d�}t	|d�}t	|d�}	|||	f}
d	}	t
|
}|d	k(r
d
}t|��||f|_|jd�d|_	|jd
k(rd|_d}|dk(r�||z|z}
|dk(r9tjdd|jz||jd|f�g|_yg|_|}|jD]H}|jj!tjdd|jz||d|f��||
z
}�Jy|dk(r/tjdd|jz||||f�g|_yy#t$rY��9wxYw)N�zNot an SGI image filerrr���
��Unsupported SGI image mode�;rrz	image/rgb����SGI16)rr�rawr�sgi_rle)�fp�readr�
ValueErrorr�MODES�KeyError�_size�split�_mode�mode�custom_mimetyper�_Tile�size�tile�append)�self�headlen�s�msg�compression�bpc�	dimension�xsize�ysize�zsize�layout�rawmode�orientation�pagesize�offset�layers                r�_openzSgiImageFile._open8s���w�w�"�"�"����G�G�L�L��!���q�z�)�C��S�/�!���d����d����1�I�	��A�q�	���A�q�	���A�r�
���i��&����	��F�m�G��b�=�.�C��S�/�!��E�\��
��]�]�3�'��*��
��9�9���#.�D� ����!���u�}�s�*�H��a�x��O�O������*�����A�{�3�	���	���	� ��!�Y�Y�E��I�I�$�$�!���!�6�D�I�I�#5�v��q�+�?V���
�h�&�F�
'��A�
�����v��	�	�1�7�W�k�SV�<W���D�I���K�	��	�s�	F<�<	G	�G	N)�return�None)�__name__�
__module__�__qualname__�format�format_descriptionrF�rrrr4s��
�F�0��Nrrc	�B�|jdvr
d}t|��|j}|jdd�}|dvr
d}t|��d}d}d	}d
}	|j\}
}|jdk(r|dk(rd}	n|jdk(rd}	t|j�}|	d
vrd}t|j
��|k7r*d|�dt|j
����}t|��d	}
d}tjjtjj|��d	}t|t�r|jdd�}d	}|jtj d|��|jt#|��|jt#|��|jtj d|	��|jtj d|
��|jtj d|��|jtj d|��|jtj d|
��|jtj d|��|jtj dd��|jtj d|��|jtj dd��|jtj d|��|jtj dd��d}|dk(rd}|j%�D]%}|j|j'd|d	|���'t)|d�r|j+�yy)N>rrrr"r;r)rrz%Unsupported number of bytes per pixelr$rrrrr>rrz(incorrect number of bands in SGI write: z vs ��ascii�ignorez>hz>Hz>l�4sr�79sr8�404srr&�flush)r0r*�encoderinfo�getr3r
�getbands�os�path�splitext�basename�
isinstance�str�encode�write�struct�packr	r.�tobytes�hasattrrV)�imr(�filenamer9�infor;rB�magic_number�rle�dim�x�y�z�pinmin�pinmax�img_name�colormaprA�channels                   r�_savert�s���	�w�w�*�*�*����o���>�>�D��(�(�5�!�
�C�
�&��5����o���K��L�
�C��C�
�7�7�D�A�q�	�w�w�#�~�!�q�&���	���C�����B�G�G��A�
�f�}�
���2�;�;�=��Q��8���4��B�K�K�M�@R�?S�T����o���F�
�F��w�w������ 0� 0�� :�;�A�>�H��(�C� ��?�?�7�H�5���H��H�H�V�[�[��|�
,�-��H�H�R��W���H�H�R��W���H�H�V�[�[��s�
#�$��H�H�V�[�[��q�
!�"��H�H�V�[�[��q�
!�"��H�H�V�[�[��q�
!�"��H�H�V�[�[��v�
&�'��H�H�V�[�[��v�
&�'��H�H�V�[�[��s�
#�$��H�H�V�[�[���
)�*��H�H�V�[�[��c�
"�#��H�H�V�[�[��x�
(�)��H�H�V�[�[���
%�&��G�
�a�x����8�8�:��
���������K�@�A���r�7��
���
�rc��eZdZdZdd�Zy)�SGI16DecoderTc�d�|j�J�|j�J�|j\}}}|jj|jj
z}t
|j�}|jjd�t|�D]�}tjd|jj|jj
f�}|j|jjd|z�dd||�|jj|j|���y)Nrrrr&r)r$r)�fdrf�args�stater=r>r
r0�seek�ranger�new�	frombytesr)�putband)	r6�bufferrA�striderBrCr?�bandrss	         r�decodezSGI16Decoder.decode�s����w�w�"�"�"��w�w�"�"�"�'+�y�y�$�����:�:�#�#�d�j�j�&6�&6�6���D�I�I��������S���%�L�D��i�i��d�j�j�&6�&6��
�
�8H�8H�%I�J�G���������Q��\�*�E�7�F�K�
�
�G�G�O�O�G�J�J��-�!�rN)r�z$bytes | Image.SupportsArrayInterfacerGztuple[int, int])rIrJrK�	_pulls_fdr�rNrrrvrv�s���I�rrvr%z	image/sgi)z.bwz.rgbz.rgbaz.sgi)r�bytesrG�bool)rfzImage.Imager(z	IO[bytes]rgzstr | bytesrGrH)�
__future__rrZrb�typingrr!rr�_binaryrrr	rr+rrt�	PyDecoderrv�register_decoder�
register_openrL�
register_save�
register_mime�register_extensionsrNrr�<module>r�s���.#�	�
���!��3�
��������		��R�9�&�&�R�jJ�Z�9�&�&��4����w��-�����L�'�'��w�?�����L�'�'��/�����L�'�'��5�����,�-�-�/O�Pr

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