HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/PIL/__pycache__/BmpImagePlugin.cpython-38.pyc
U

g�
^8�@sddlmZmZmZddlmZmZmZ	m
Z
mZm
Zddddddd	�Zd
d�Zdd
�ZGdd�dej�ZGdd�de�Zdddddd�Zdd�Zd!dd�Ze�ejee�e�eje�e�ejd�e�ejd�e�ejee�e�eje�e�ejd�e�ejd�d S)"�)�Image�	ImageFile�ImagePalette)�i8�i16le�i32le�o8�o16le�o32le)�PzP;1)rzP;4)rr)�RGB�BGR;15)r�BGR)r�BGRX)r����� cCs|dd�dkS)N��BM���prefixrr�4/usr/lib/python3/dist-packages/PIL/BmpImagePlugin.py�_accept-srcCst|dd��dkS)Nr)��(�@�l�|)�i32rrrr�_dib_accept1sr"c@sXeZdZdZdZdZdddddd	d
�Ze��D]\ZZ	e	e
�e<q.ddd�Zd
d�ZdS)�BmpImageFilez2 Image plugin for the Windows Bitmap format (BMP) �Windows BitmapZBMP�rr�r�)�RAWZRLE8ZRLE4�	BITFIELDSZJPEGZPNGc	Cs�|jj|jj}}|r||�i}t|d��|d<d|d<t�|j|dd�}|ddkr�t|dd��|d<t|dd��|d	<t|dd
��|d<t|d
d��|d
<|j|d<d|d<�n�|ddk�r�t|d�dk|d<|dr�dnd|d<t|dd��|d<|d�s&t|dd��ndt|dd��|d	<t|dd��|d<t|dd��|d
<t|dd��|d<t|dd��|d<t|dd��t|dd��f|d<t|dd��|d<d|d<t	d d!�|dD��|j
d"<|d|jk�r�t|�d#k�rJt
d$d%d&d'g�D].\}}t|d(|dd)|d��||<�qn$d|d'<d*D]}t|d��||<�qV|d$|d%|d&f|d+<|d$|d%|d&|d'f|d,<ntd-|d��|d|d	f|_|�dd��r�|dn
d|d
>|d<|d|d	d.k�rtd/|j��t�|d
d0�\|_}	|jd1k�rHtd2|d
��|d|jk�r6d3d4d5d6d7gd8gd9d:gd;�}
d<d=d>d?d?d@dAdBdC�}|d
|
k�r,|d
dk�r�|d,|
|d
k�r�||d
|d,f}	dD|	k�r�d>n|j|_nB|d
dEk�r"|d+|
|d
k�r"||d
|d+f}	ntdF��ntdF��nD|d|jk�rj|d
dk�rz|dGk�rzdH\}	|_ntdI|d��|jdJk�r~d|dk�r�dKk�s�ntdL|d��n�|d}|||d�}
dM}|ddk�r�dNntt|d��}t
|�D]8\}}|
||||d�}|t|�dk�r�dO}�q�|�r\|ddk�rNdPndQ|_|j}	n"dJ|_t�|dk�rtd<nd@|
�|_|d|j
d<dRdd|d|d	f|�p�|j��|	|d|d
dSd?dT@|dffg|_d1S)Uz" Read relevant info about the BMP r�header_size����	directionrr%r�widthZheight�Zplanesr�bitsZcompressionr&Zpalette_padding)rrrr ��Zy_fliprl�
r��	data_sizer�Zpixels_per_meterr�colorscss|]}t|dd�VqdS)���o_�C@��?N��int)�.0�xrrr�	<genexpr>rsz'BmpImageFile._bitmap.<locals>.<genexpr>�dpi�4�r_mask�g_mask�b_maskZa_mask�$r)r@rArBZrgb_maskZ	rgba_maskz Unsupported BMP header type (%d)lzUnsupported BMP Size: (%dx%d))NNNz Unsupported BMP pixel depth (%d)�����r1r%�rErFr1�~�r1rFrErH�r%r%r%r%�rHrErFr%�rErFr1�i�i���i|i�rN)rrrrZXBGR�RGBA�BGRArzBGR;16r
))rrD)rrK)rrI)rrG)rrJ)rrL)rrM)rrO�A)rrz Unsupported BMP bitfields layout�)rQrPz Unsupported BMP compression (%d)riz!Unsupported BMP Palette size (%d)T�r%r1F�1�L�rawrN���)�fp�read�seekr!rZ
_safe_read�i16r(r�tuple�infor)�len�	enumerate�OSErrorZ_size�get�size�BIT2MODE�mode�list�rangerrrW�palette�tellZtile)�self�header�offsetrZr[�	file_infoZheader_data�idx�maskZraw_modeZ	SUPPORTEDZ
MASK_MODESZpaddingrhZ	greyscale�indicesZind�valZrgbrrr�_bitmapDs
����
�*
��

�
����

��
��


������zBmpImageFile._bitmapcCsD|j�d�}|dd�dkr$td��t|dd��}|j|d�dS)	z/ Open file, check magic number and read header �r%rrzNot a BMP filer2)rlN)rYrZ�SyntaxErrorr!rr)rjZ	head_datarlrrr�_opens
zBmpImageFile._openN)r%r%)
�__name__�
__module__�__qualname__�__doc__�format_description�formatZCOMPRESSIONS�items�k�v�varsrrrurrrrr#8s
Br#c@seZdZdZdZdd�ZdS)�DibImageFileZDIBr$cCs|��dS)N)rr)rjrrrruszDibImageFile._openN)rvrwrxr{rzrurrrrr�sr�)rUrr)rVr�)rrr�)rrr%)rQrr%)rUrVrrrPcCst|||d�dS)NF)�_save)�imrY�filenamerrr�	_dib_save,sr�Tc
Cszt|j\}}}Wn"tk
r6td|j��YnX|j}|�dd�}ttdd�|��}	|jd|ddd	d
@}
d}|
|jd}|r�d
||d}
|
|}|dkr�t	d��|�
dt|�td�t|
��|�
t|�t|jd�t|jd�td�t|�td�t|�t|	d�t|	d�t|�t|��|�
d|d�|jdk�r�dD]}|�
t
|�d��qnnP|jdk�r�td�D]}|�
t
|�d��q�n |jdk�r�|�
|j�dd��t�||dd|jd||
dffg�dS)Nzcannot write mode %s as BMPr>)�`r�cSst|dd�S)Nr7r8r9)r<rrr�<lambda>;�z_save.<locals>.<lambda>r%r0rr&rXrrrsrl��z)File size is too large for the BMP formatr�rUrTrVr�rrrrW)r%r%r+)�SAVEre�KeyErrorraZencoderinforbr]�maprc�
ValueError�write�o32�o16rrgr�Z
getpaletterr�)r�rYr�Z
bitmap_headerZrawmoder/r6r^r>ZppmZstriderkZimagerl�	file_size�irrrr�0sr����������
�
�	�
��r�z.bmpz	image/bmpz.dibN)T)�rrrZ_binaryrrr\rr!rr	r�r
r�rdrr"r#r�r�r�r�Z
register_openr{Z
register_saveZregister_extensionZ
register_mimerrrr�<module>s: �^�	
@