CoolFace
Apppublic

Aluode/PerceptionLabPortable

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
BmpImagePlugin.cpython-310.pyc83 linesDownload Raw Back to __pycache__
1o

2��Yi�O�@s~ddlmZddlZddlmZmZddlmZmZm	Z	ddl3mZddl4m
Zddl5mZdd	l6mZdd7l8mZddd
dddd�ZdZd8dd�Zd8dd�ZGdd�dej�ZGdd�dej�ZGdd �d e�Zd!d"d#d$d%d&�Zd9d.d/�Z	0d:d;d2d3�Ze�ej ee�e�!ej e�e�"ej d4�e�#ej d5�e�$d6e�e�ej ee�e�!ej e�e�"ej d7�e�#ej d5�dS)<�)�annotationsN)�IO�Any�)�Image�	ImageFile�ImagePalette)�i16le)�i32le��o8)�o16le)�o32le)�PzP;1)rzP;4)rr)�RGB�BGR;15)r�BGR)r�BGRX)r����� F�prefix�bytes�return�boolcCs9|�d�S)N�BM)�10startswith�r�r �|E:\DocsHouse\542 percep lab latest\PerceptionLab\PerceptionLab_Portable\python_embed\Lib\site-packages\PIL/BmpImagePlugin.py�_accept6s11r"cCst|�dvS)N)��(�4�8�@�l�|)�i32rr r r!�_dib_accept:�r+c@s\eZdZdZdZdZdddddd	d12�Ze��D]	\ZZ	e	e13�e<qdddd�Zddd�ZdS)�BmpImageFilez0Image plugin for the Windows Bitmap format (BMP)�Windows BitmapZBMPrr��r�)�RAW�RLE8�RLE4�	BITFIELDSZJPEGZPNG�header�int�offsetr�NonecCsV|jdusJ�|jj|jj}}|r||�t|d��dd�}t|dt�s(J�t�|j|dd�}|ddkrbt|d�|d<t|d	�|d14<t|d�|d<t|d�|d
<|j	d|d<d|d<�n|ddv�rq|ddk|d<|drwdnd|d<t|d�|d<|ds�t|d�ndt|d�|d15<t|d�|d<t|d�|d
<t|d�|d<t|d�|d<t|d�t|d�f|d<t|d �|d!<d|d<t|dt16�s�J�t17d"d#�|dD��|jd$<|d|j	d%k�rpgd&�}t|�d'k�rt|�d(kr�|�
d)�nd|d)<t|�D]\}}	t|d*|d�||	<�qnd|d)<|D]}	t|d��||	<�qt|d+t��s5J�t|d,t��s?J�t|d-t��sIJ�t|d)t��sSJ�|d+|d,|d-f|d.<|d+|d,|d-|d)f|d/<nd0|d�d1�}18t|19��t|dt��s�J�t|d20t��s�J�|d|d21f|_t|d
t��s�J�|�d!d��r�|d!nd|d
>|d!<t|d!t��s�J�|d2|dk�r�|d
dk�r�|d|d!7}t�|d
d3�\|_}|j�s�d4|d
�d1�}22t|23��d5}|d|j	d%k�r�gd6�d7gd8d9gd:�}
d;d<d=d>d?d@dAd@dBdCdDdE�}|d
|
v�r|d
dFk�rR|d/|
|d
v�rRt|d/t24��s<J�||d
|d/f}dG|v�rMd?n|j|_np|d
dHv�ry|d.|
|d
v�ryt|d.t25��snJ�||d
|d.f}nIdI}26t|27��dI}28t|29��|d|j	dk�r�|d
dFk�r�|dJk�s�t�r�dK\}|_n|d|j	dL|j	dMfv�r�dN}ndO|d�d1�}30t|31��|jdPk�rQd|d!k�r�dQk�s�ndR|d!�d1�}32t|33��t|dt��s�J�|d}|||d!�}dS}|d!d	k�rdTntt|d!��}t|�D]\}}|||||d�}|t|�dk�r+dU}�q|�r@|d!d	k�r9dVndW|_|j}ndP|_t�|dk�rLd;ndB|�|_|d|jd<|g}|dNk�rm|�
|d|j	dMk�nt|dt��swJ�|�
|d|d
dXd?dY@�|�
|d�t�|dd|d|d34f|�p�|j��t35|��g|_dS)Zz Read relevant info about the BMPNr�����)�header_size�	directionr;r#r�widthr/�heightZplanes��bitsr2�compressionr0Zpalette_padding)r$r%r&r'r(r)���Zy_fliprr<lr�36r�	data_size�rZpixels_per_meter��colorscss�|]}|dVqdS)���o_�C@Nr ��.0�xr r r!�	<genexpr>�s�z'BmpImageFile._bitmap.<locals>.<genexpr>�dpir5)�r_mask�g_mask�b_mask�0r%Za_mask�$rOrPrQZrgb_maskZ	rgba_maskzUnsupported BMP header type (�)�)�rVzUnsupported BMP pixel depth (�raw)�����rCr��~rYrZr�r\rZrCr�r\rYrZrC�rCrZrYr\�rYrZrCr\�r\rZrCrY�rrrr�rYrZrC�i�i���i|i�re)rrrrZXBGRZBGXRZABGR�RGBA�BGRAZBGARrzBGR;16r))rrX)rr[)rr])rr^)rr_)rr`)rra)rrb)rrc)rrd)rrfr�A)rrz Unsupported BMP bitfields layout�)rhrgr3r4�bmp_rlezUnsupported BMP compression (rizUnsupported BMP Palette size (T�rrCF�1�Lre�����)�fp�read�seekr*�37isinstancer7r�38_safe_read�i16�COMPRESSIONS�tuple�info�len�append�	enumerate�OSError�_size�get�BIT2MODE�_mode�mode�
USE_RAW_ALPHA�list�rangerrrW�palette�_Tile�tellZtile)�selfr6r8rqrr�	file_infoZheader_dataZmasks�idx�mask�msgZraw_modeZdecoder_nameZ	SUPPORTEDZ39MASK_MODES�paddingr�Z	grayscale�indices�ind�val�rgb�argsr r r!�_bitmapMs@40�	�������41�42� 43��
44������45"�46�zBmpImageFile._bitmapcCsH|jdusJ�|j�d�}t|�sd}t|��t|d�}|j|d�dS)z-Open file, check magic number and read headerNrUzNot a BMP filerD)r8)rprqr"�SyntaxErrorr*r�)r�Z	head_datar�r8r r r!�_open8s47zBmpImageFile._openN�rr)r6r7r8r7rr9�rr9)
�__name__�48__module__�__qualname__�__doc__�format_description�formatrv�items�k�v�varsr�r�r r r r!r-Aslr-c@seZdZdZd	dd�ZdS)49�
BmpRleDecoderT�buffer�$bytes | Image.SupportsArrayInterfacer�tuple[int, int]cCs�|jdusJ�|jd}t�}d}|jj|jj}t|�|k�r,|j�d�}|j�d�}|r0|s1n�|d}|r||||jjkrHtd|jj|�}|rqt	|dd?�}	t	|dd@�}50t51|�D]}|ddkrk||	7}q^||527}q^n|||7}||7}n�|ddkr�t|�|jjdkr�|d7}t|�|jjdks�d}n�|ddkr�n�|ddkr�|j�d�}t|�dkr�nu|j�d�\}
}|d|
||jj7}t|�|jj}nR|r�|dd}|j�|�}|D]}|t	|d?�7}|t	|d@�7}q�n|d}|j�|�}||7}t|�|k�rn||d7}|j��ddk�r&|j�dt
j�t|�|ks |jdk�r4dnd}|�t|�|d|jd	f�d53S)Nrrr�r/�rnrr:)r:r)�fdr��	bytearray�stateZxsizeZysizeryrq�maxrr�r�rr�os�SEEK_CURr�Z54set_as_rawr)r�r�Zrle4�datarLZdest_lengthZpixels�byteZ55num_pixelsZfirst_pixelZsecond_pixel�indexZ56bytes_read�right�upZ57byte_countZ	byte_read�rawmoder r r!�decodeJsr585960�61���;zBmpRleDecoder.decodeN)r�r�rr�)r�r�r�Z	_pulls_fdr�r r r r!r�Gsr�c@seZdZdZdZddd�ZdS)	�DibImageFileZDIBr.rr9cCs|��dS)N)r�)r�r r r!r��r,zDibImageFile._openNr�)r�r�r�r�r�r�r r r r!r��sr�)rmrr/)rnr�)rrr�)rrr)rhrr)rmrnrrrg�im�Image.Imagerp�	IO[bytes]�filename�str | bytesr9cCst|||d�dS)NF)�_save)r�rpr�r r r!�	_dib_save�sr�T�
bitmap_headercCsz62t|j\}}}Wnty"}zd|j�d�}t|�|�d}~ww|j}	|	�dd�}63tdd�|64D��}|jd|dd	d65d@}d}
||jd
}|jdkr]d�dd�dD��}n'|jdkrod�dd�t	d�D��}n|jdkr�|j66�dd�}t|�d}nd}|r�d|
|d}||}|dkr�d}t
|��|�dt|�td�t|��|�t|
�t|jd�t|jd
�td
�t|�td�t|�t|d�t|d
�t|�t|��|�d|
d�|r�|�|�t�||t�dd|jd||d f�g�dS)!Nzcannot write mode z as BMPrN)�`r�css �|]}t|dd�VqdS)rIg�?N)r7rJr r r!rM���z_save.<locals>.<genexpr>rrBrr0ror$rrm�cs� �|]}t|�ddVqdS�r0r�Nr�rK�ir r r!rM�r�rlrncsr�r�rr�r r r!rM�r�r�rrrrrUl��z)File size is too large for the BMP formatrr�rWr�r:)�SAVEr��KeyErrorr|Zencoderinfor~rw�size�joinr�r�Z67getpalettery�68ValueError�write�o32�o16rr�r�)r�rpr�r�r�r@rH�er�rxrN�ppmZstrider6�imager�r8�	file_sizer r r!r��s�69��707172����������73�74�	�75��76 �r�z.bmpz	image/bmprkz.dib)rrrr)r�r�rpr�r�r�rr9)T)77r�r�rpr�r�r�r�rrr9)%�78__future__rr��typingrrrVrrr�_binaryr	rur79r*rr
r�rr�rr�r"r+r-Z	PyDecoderr�r�r�r�r�Z
register_openr�Z
register_saveZregister_extensionZ
register_mimeZregister_decoderr r r r!�<module>sT�80 8182L�83	�J