Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/site-packages/PIL/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/site-packages/PIL/__pycache__/BmpImagePlugin.cpython-35.pyc



�ʴW)3�
@sUddlmZmZmZmZddlZdZejZejZ	ej
ZejZej
ZejZdd!dd"d	d#d
d$d
d%dd&iZdd�ZGdd�dej�ZGdd�de�Zdd'dd(dd)dd*dd+iZddd�Zejejee�ejeje�ejejd�ejejd �dS),�)�Image�	ImageFile�ImagePalette�_binaryNz0.7��P�P;1��P;4���RGB�BGR;15��BGR� �BGRXcCs|dd�dkS)N�sBM�)�prefixrr�E/opt/alt/python35/lib64/python3.5/site-packages/PIL/BmpImagePlugin.py�_accept6src@s�eZdZdZdZdZdddddd	d
ddd
ddiZd\ZZZ	Z
ZZdddd�Z
dd�ZdS)�BmpImageFilez2 Image plugin for the Windows Bitmap format (BMP) zWindows BitmapZBMP�RAWr�RLE8r�RLE4r�	BITFIELDS��JPEGr	�PNG�cCs�|jj|jj}}|r)||�t�}t|d��|d<dI|d<tj|j|dd�}|ddkrt|dd��|d<t|dd��|d	<t|dd
��|d<t|d
d��|d
<|j|d<d|d<n�|ddJkr�|ddkr�t	|d�dk|d<|drKdndK|d<t|dd��|d<|ds�t|dd��ndLt|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
td!d"�|d��|jd#<|d|j
kr�t|�d$kr
x�td%d&d'd(g�D]6\}}t|d)|dd|d��||<q�Wn:d|d(<x-d%d&d'gD]}t|d��||<q$W|d%|d&|d'f|d*<|d%|d&|d'|d(f|d+<ntd,|d��|d|d	f|_|jd d�r�|d nd|d
>|d <|d|d	dMkrtd.|j��tj|d
dN�\|_}	|jd/krRtd0|d
��|d|j
kr�ddOdPdQgddRgddSdTgi}
dVd8dXd9dZd9d\d:d^d;d`d<i}|d
|
kr||d
dkr*|d+|
|d
kr*||d
|d+f}	|	dakrd=n|j|_q�|d
dbkrm|d*|
|d
krm||d
|d*f}	q�td>��q�td>��nU|d|jkr�|d
dkr�|d?kr�dc\}	|_ntd@|d��|jdAkr,d|d ko
dBkns&tdC|d ��n|d}|||d �}
dD}|d dkr`ddntt|d ��}xRt|�D]D\}}|
||||d�}|t|�dkr�dE}q�W|r�|d dkr�dFndG|_|j}	n0dA|_tj|dkrd8nd:|
�|_|d|jd<dHdd|d|d	f|pi|jj�|	|d|d
d-d?de@|dffg|_d/S)fz" Read relevant info about the BMP r	Zheader_sizer�	direction�rr�width�height�Zplanesr�bits�compressionrZpalette_padding�(�@�l�|��Zy_flipr�
r�Z	data_sizer�Zpixels_per_meter�colorscSsttj|d��S)Ng��o_�C@)�int�math�ceil)�xrrr�<lambda>isz&BmpImageFile._bitmap.<locals>.<lambda>�dpi�4Zr_maskZg_maskZb_maskZa_mask�$Zrgb_maskZ	rgba_maskz Unsupported BMP header type (%d)�zUnsupported BMP Size: (%dx%d)Nz Unsupported BMP pixel depth (%d)�����~�����|��r�BGRArzBGR;16zBGR;15�RGBAz Unsupported BMP bitfields layout�z Unsupported BMP compression (%d)riz!Unsupported BMP Palette size (%d)TF�1�L�raw���)r(r)r*r+rHll)NN)r;r<r-r)r;r<r-r=)rrrr)r;r<r-)r>r?r:)r@rAr:�r;r<r-r)rrI�r;r<r-r=)rrJ�rrrr)rrK�r;r<r-)rrL�r>r?r:)rrM�r@rAr:)rrN)rB)rr)rBrC)rr-���)�fp�read�seek�dict�i32rZ
_safe_read�i16r�i8�tuple�map�infor�len�	enumerate�IOError�size�get�BIT2MODE�mode�list�range�o8rrG�palette�tellZtile)�self�header�offsetrQrR�	file_infoZheader_data�idx�maskZraw_modeZ	SUPPORTEDZ
MASK_MODES�paddingrdZ	greyscale�indices�ind�valZrgbrrr�_bitmapGs�
	


>0
%1
).	(!( 
,
	',zBmpImageFile._bitmapcCs^|jjd�}|dd�dkr4td��t|dd��}|jd|�dS)	z/ Open file, check magic number and read header �rrsBMzNot a BMP filer.rhN)rPrQ�SyntaxErrorrTrp)rfZ	head_datarhrrr�_open�s
zBmpImageFile._openN)rrrrr	r )�__name__�
__module__�__qualname__�__doc__�format_description�formatZCOMPRESSIONSrrrrrrrprsrrrrr=s*|rc@s(eZdZdZdZdd�ZdS)�DibImageFileZDIBzWindows BitmapcCs|j�dS)N)rp)rfrrrrs�szDibImageFile._openN)rtrurvryrxrsrrrrrz�srzrErrF�rCrBcCsxyt|j\}}}Wn%tk
rAtd|j��YnX|rL|S|j}|jdd�}ttdd�|��}	|jd|ddd	d@}
d
}d||d}|
|jd
}
|j	dt
||
�t
d�t
|��|j	t
|�t
|jd�t
|jd
�td
�t|�t
d�t
|
�t
|	d�t
|	d
�t
|�t
|��|j	d|d
�|jdkr�x�dD]}|j	t|�d�q�Wnk|jdkrxYt
d�D]}|j	t|�d�q�Wn+|jdkrB|j	|jjdd��tj||dd|jd||
dffg�dS)Nzcannot write mode %s as BMPr7�`cSst|d�S)Ng��o_�C@)r2)r5rrrr6�sz_save.<locals>.<lambda>rr,rrr(rqr	rsBMsrEr-rFr{rr
rrG)r|r|rO)rr-)rrrH)�SAVEr`�KeyErrorr\Zencoderinfor^rWrXr]�write�o32�o16rcrb�imZ
getpaletter�_save)r�rP�filename�check�rawmoder&r1rYr7ZppmZstridergrhZimage�irrrr��s<
	!y
r�z.bmpz	image/bmp)rr)rr
)rr)r
r)r
r)r
r)rErr)rFrr{)rrr{)rrr)rBrr)ZPILrrrrr3�__version__rVZi16lerUZi32lerTrcZo16ler�Zo32ler�r_rrrzr}r�Z
register_openryZ
register_saveZregister_extensionZ
register_mimerrrr�<module>s6"						�
9