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__/JpegImagePlugin.cpython-35.pyc



�ʴW�e��@s#ddlZddlZddlZddlZddlmZddlmZmZmZm	Z	ddl
mZddlm
Z
e	jZe	jZe	jZe	jZdZdd�Zd	d
�Zdd�Zd
d�Zdd�Zdddefdddefdddefdddefdddefd d!d"efd#d$d%efd&d'd(efd)d,d,d-d.efd/d0d1efd2d3d4efd5d6d7efd8d9d:efd;d<d=efd>d?d@efdAd-dDd.dGd/dJd0dMd1dPd2dSd3dVd4dYd5d\d6d_d`daefdbddcefdddedfefdgdhdiefdjdkdlefdmdndoefdpdqdrefdsdtduefdvdwdxefdydzd{efd|d}d~efdd�d�efd�d�d�efd�d�d�efd�d�d�efd�d�d�efd�d�d�efd�d�d�efd�d�d�efd�d�d�efd�d�d�efd�d�d�efd�d7d�d8d�d9d�d:d�d;d�d<d�d=d�d>d�d?d�d@d�dAd�dBd�dCd�dDd�dd�efi?Zd�d��ZGd�d��d�ej�Zd�d��Zd�d��Zd�d��Zd�d�d�d�d�d�d�d�d�d�d�d�d�d�iZ dEZ!dFddGd�dHd�iZ"dd�Z#dd �Z$d!d"�Z%d#d$�Z&ddd%d&�Z'ej(ej)e'e�ej*ej)e%�ej+ej)d'�ej+ej)d(�ej+ej)d)�ej+ej)d*�ej,ej)d+�dS(I�N)�unpack_from)�Image�	ImageFile�TiffImagePlugin�_binary)�presets)�isStringTypez0.6cCs3t|jjd��d}tj|j|�dS)N�)�i16�fp�readr�
_safe_read)�self�marker�n�r�F/opt/alt/python35/lib64/python3.5/site-packages/PIL/JpegImagePlugin.py�Skip7src	
Cs�t|jjd��d}tj|j|�}d|d@}||j|<|jj||f�|dkr'|dd�dkr't|d�|jd<}t	|d	�|jd
<y2t
|d�}t|d�t|d
�f}WnYq~X|dkr
||jd<||jd<||jd<nW|dkrY|dd�dkrY||jd<n%|dkr�|dd�dkr�||jd<n�|dkr�|dd�dkr�|jj|�n�|dkr'|dd�dkr't|d�|jd<yt
|d�}WnYq~X||jd<nW|dkr~|dd�dkr~|dd�|jd<|jj�|d|jd <dS)!Nr	zAPP%d�i��sJFIF�Zjfif�Zjfif_version���
��dpi�	jfif_unit�jfif_densityi�sExif�exifi�sFPXRZflashpix�sICC_PROFILEi�sAdobe�adobe�adobe_transformsMPF�mpZmpoffset)
r
rrrr
�app�applist�append�info�divmod�i8�icclist�tell)	rrr�sr$�versionrrr"rrr�APP<sB
""

"""""r.cCsXt|jjd��d}tj|j|�}||jd<|jjd|f�dS)Nr	�COM)r
rrrr
r$r%r&)rrrr,rrrr/|s
r/c	CsLt|jjd��d}tj|j|�}t|dd��t|dd��f|_t|d�|_|jdkr�td|j��t|d�|_	|j	dkr�d|_
nI|j	dkr�d	|_
n.|j	d
kr�d|_
ntd|j	��|dkr0d|jd<|jd<|jr�|jj
�t|jdd�t|j�kr�g}x(|jD]}|j|dd��q|Wdj|�}nd}||jd<d|_xztdt|�d�D]`}|||d�}|jj|dt|d�dt|d�d@t|d�f�q�WdS)Nr	�rrrzcannot handle %d-bit layersr�L�RGBr�CMYKzcannot handle %d-layer images���������progressive�progression�
���icc_profile��r)r4r5r6r7)r
rrrr
�sizer)�bits�SyntaxError�layers�moder'r*�sort�lenr&�join�range�layer)	rrrr,Zprofile�pr=�i�trrr�SOF�s:/	
&
	rMcCs�t|jjd��d}tj|j|�}x�t|�r�t|�dkr^td��t|d�}|ddkr�tjd|dd��|j	|d@<|dd�}q4dSq4WdS)	Nr	�Azbad quantization table markerrr?�Brr)
r
rrrr
rFrBr)�array�quantization)rrrr,�vrrr�DQT�s	'rSi��ZSOF0zBaseline DCTi��ZSOF1zExtended Sequential DCTi�ZSOF2zProgressive DCTi�ZSOF3zSpatial losslessi�ZDHTzDefine Huffman tablei�ZSOF5zDifferential sequential DCTi�ZSOF6zDifferential progressive DCTi�ZSOF7zDifferential spatiali��JPG�	Extensioni�ZSOF9zExtended sequential DCT (AC)i�ZSOF10zProgressive DCT (AC)i�ZSOF11zSpatial lossless DCT (AC)i�ZDACz%Define arithmetic coding conditioningi�ZSOF13z Differential sequential DCT (AC)i�ZSOF14z!Differential progressive DCT (AC)i�ZSOF15zDifferential spatial (AC)i��RST0�	Restart 0i��RST1�	Restart 1i��RST2�	Restart 2i��RST3�	Restart 3i��RST4�	Restart 4i��RST5�	Restart 5i��RST6�	Restart 6i��RST7�	Restart 7i��SOI�Start of imagei��EOI�End of imagei�ZSOSz
Start of scani�zDefine quantization tablei�ZDNLzDefine number of linesi�ZDRIzDefine restart intervali�ZDHPzDefine hierarchical progressioni�ZEXPzExpand reference componenti�ZAPP0zApplication segment 0i�ZAPP1zApplication segment 1i�ZAPP2zApplication segment 2i�ZAPP3zApplication segment 3i�ZAPP4zApplication segment 4i�ZAPP5zApplication segment 5i�ZAPP6zApplication segment 6i�ZAPP7zApplication segment 7i�ZAPP8zApplication segment 8i�ZAPP9zApplication segment 9i�ZAPP10zApplication segment 10i�ZAPP11zApplication segment 11i�ZAPP12zApplication segment 12i�ZAPP13zApplication segment 13i�ZAPP14zApplication segment 14i�ZAPP15zApplication segment 15i��JPG0�Extension 0i��JPG1�Extension 1i��JPG2�Extension 2i��JPG3�Extension 3i��JPG4�Extension 4i���JPG5�Extension 5i���JPG6�Extension 6i���JPG7�Extension 7i���JPG8�Extension 8i���JPG9�Extension 9i���JPG10�Extension 10i���JPG11�Extension 11i���JPG12�Extension 12i���JPG13�Extension 13i���CommentcCs|dd�dkS)Nrrs�r)�prefixrrr�_acceptsr�c@sXeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
S)�
JpegImageFile�JPEGzJPEG (ISO 10918)cCs�|jjd�}t|�dkr0td��d|_|_g|_i|_i|_i|_	i|_
g|_g|_xAt|�}|dkr�||jjd�}t
|�}n|jjd�}q�|tkrqt|\}}}|dk	r|||�|dkr\|j}|jdkr6d}dd|jd|d	ffg|_P|jjd�}q�|dks�|d
kr�d}q�|dkr�|jjd�}q�td
��q�WdS)Nr�znot a JPEG fileri�r3zCMYK;I�jpeg�i��s�i�zno marker found)rr)rrr)rBrArCrIZ
huffman_dcZ
huffman_acrQr$r%r*r
�MARKERrDr@�tile)rr,rK�name�description�handler�rawmoderrr�_opensF							
		zJpegImageFile._openc	Cs�t|j�dkrdS|jd\}}}}d}|ddkri|dkri||_|df}|r[t|jd|d|jd|d�}x'ddd	dgD]}||kr�Pq�W|d|d|d	|d|d||d|d
|d|d||df}|jd|d||jd|d|f|_|}||||fg|_|df|_|S)Nrrr2r1�YCbCrr�rrr	r0)r1r�)rFr�rD�maxr@Z
decoderconfig)	rrDr@�d�e�o�aZscaler,rrr�draftSs$	-Z5zJpegImageFile.draftcCs�ddl}ddl}ddl}|j�\}}|j|�|jj|j�rw|jdd||jg�nt	d��zt
jj|�|_
Wdy|j|�Wntk
r�YnXX|j
j|_|j
j|_g|_dS)NrZdjpegz-outfilezInvalid Filename)�
subprocess�tempfile�os�mkstemp�close�path�exists�filename�
check_call�
ValueErrorr�coreZopen_ppm�im�unlink�OSErrorrDr@r�)rr�r�r��fr�rrr�
load_djpegms"

zJpegImageFile.load_djpegcCs
t|�S)N)�_getexif)rrrrr��szJpegImageFile._getexifcCs
t|�S)N)�_getmp)rrrrr��szJpegImageFile._getmpN)
�__name__�
__module__�__qualname__�formatZformat_descriptionr�r�r�r�r�rrrrr�s4r�cs/dd��t�fdd�|j�D��S)Nc	Ss=y.t|�dkr-t|t�r-|dSWnYnX|S)Nrr)rF�
isinstance�dict)�valuerrr�_fixup�s"z_fixup_dict.<locals>._fixupcs(g|]\}}|�|�f�qSrr)�.0�krR)r�rr�
<listcomp>�s	z_fixup_dict.<locals>.<listcomp>)r��items)Zsrc_dictr)r�r�_fixup_dict�sr�cCs?y|jd}Wntk
r)dSYnXtj|dd��}|jd�}tj|�}|j|�tt	|��}y|j
|d�Wnttfk
r�Yn0Xtj|�}|j|�|jt	|��y|j
|d�Wnttfk
rYn-Xtj|�}|j|�t	|�|d<|S)Nrr>rii�i%�)
r'�KeyError�io�BytesIOrrZImageFileDirectory_v1�loadr�r��seek�	TypeError�update)r�data�file�headr'rrrrr��s0
	


r�c+Csqy|jd}Wntk
r)dSYnXtj|�}|jd�}|dd�dkrddnd}y,tj|�}|j|�t|�}Wnt	d��YnXy|d}Wntk
r�t	d	��YnXg}yj|d
}	xOt
d|�D]>}
tdj|�|	|
d
�}d3}tt
||��}
dt|
dd4@�dt|
dd5@�dt|
dd6@�d|
dd7@d?d|
dd8@d?d |
dd!@i}|ddkr�d"|d<nt	d#��dd$d%d&d'd(d)d*d+d,d-d.d/d0i}|j|d d1�|d <||
d<|j|
�q�W||d
<Wntk
rlt	d2��YnX|S)9Nr#rrsMM*�>�<z)malformed MP Index (unreadable directory)i�z(malformed MP Index (no number of images)i�rz{0}LLLHHr?�	Attribute�Size�
DataOffset�EntryNo1�EntryNo2ZDependentParentImageFlagr�ZDependentChildImageFlag�ZRepresentativeImageFlag�ZReservedr0�ZImageDataFormatr�ZMPTypei���r�z!unsupported picture format in MPOZ	Undefinediz Large Thumbnail (VGA Equivalent)iz$Large Thumbnail (Full HD Equivalent)izMulti-Frame Image (Panorama)izMulti-Frame Image: (Disparity)iz Multi-Frame Image: (Multi-Angle)izBaseline MP Primary Image�Unknownz!malformed MP Index (bad MP Entry))r�r�r�r�r�li@i ii)r'r�r�r�rrZImageFileDirectory_v2r�r�rBrHrr��zip�bool�getr&)rr��
file_contentsr�Z
endiannessr'r#ZquantZ	mpentriesZrawmpentriesZentrynumZ
unpackedentry�labelsZmpentryZmpentryattrZ	mptypemaprrrr��sj
	"










r��1r1r2ZRGBAZRGBXr3zCMYK;Ir�rrr>r;rr��r	rrr:r?�r��*r0rr ��r��)�+�	��r�r��(�,�5r��� �'�-�4�6���!�&�.�3�7�<��"�%�/�2�8�;�=�#�$�0�1�9�:�>�?csc�fdd�tt���D��x7t��D])\}��fdd�tD��|<q2W�S)Ncs&g|]}|�kr�|�qSrr)r��key)�qtablesrrr�/s	z(convert_dict_qtables.<locals>.<listcomp>csg|]}�|�qSrr)r�rK)�tablerrr�1s	)rHrF�	enumerate�zigzag_index)r�idxr)rrr�convert_dict_qtables.s%!r
cCstt|d�s|jdkr#dS|jddd�|jddd�|jddd�}tj|d	�S)
NrCrrrr0r	)rr���r)�hasattrrCrI�	samplingsr�)r�Zsamplingrrr�get_sampling5sArcCs4yt|j}Wn%tk
r8td|j��YnX|j}|jdd#�}|jdd�}|jdd$�}|jd�}|dkr�d}d}d}n�|tkr�t|}	d}|	jdd%�}|	jd	�}nkt|t�st	d
��nM|tkr(t|jdd&�}t
|�rS|tkrSt|jd	�}|dkrhd}n]|dkr}d}nH|d
kr�d}n3|dkr�|jdkr�t	d��t|�}dd�}
|dkr
|jdkr�t	d��t
|d	d�}|
|�}d}|jd�}|r�d}
d}||
}g}x1|r�|j|d|��||d�}qPWd}xh|D]`}tjdd|
t|��}|d|dt|�tt|��|7}|d7}q�W|d|kp
d|k|jdd�d|k|jdd�|d|d||||jdd�f|_d}d|ks�d|ks�d|kr�|d ks�|dkr�d|jd|jd}n|jd|jd}ttj|t|jdd��d!�}tj||d"d'|jd|fg|�dS)(Nzcannot write mode %s as JPEGrr�quality�subsamplingrr�keeprQzInvalid quality settingz4:4:4z4:2:2z4:1:1r	r�z3Cannot use 'keep' when original image is not a JPEGcs�|dkr|St|�r�ydd�|j�D��Wntk
rYtd��Yn,X�fdd�tdt��d�D�}t|tttf�r�t|t�r�t	|�}nt|t�r�t|�}dt|�ko�dknstd��xvt
|�D]h\}}y+t|�dkr5�tjd	|�}Wntk
rhtd��YqXt|�||<qW|SdS)
NcSs?g|]5}|jdd�dj�D]}t|��q&qS)�#rr)�split�int)r��line�numrrrr�ts	z3_save.<locals>.validate_qtables.<locals>.<listcomp>zInvalid quantization tablecs$g|]}�||d��qS)�@r)r�r,)�linesrrr�ys	rrrz$None or too many quantization tablesrO)
r�
splitlinesr�rHrFr��tuple�listr�r
rrPr�)rr	rr)rr�validate_qtablesos0
+"
z_save.<locals>.validate_qtablesr<r=r;i��z>Hs��sICC_PROFILEr8r9Zsmooth�optimizeZ
streamtyper�_rr�)rrrrr)rr)�RAWMODErDr��IOErrorZencoderinfor�rr�rr�rr�r�getattrr&�struct�packrF�o8Z
encoderconfigr@r�rZMAXBLOCK�_save)r�rr�r�r'rrrr�presetr�extrar=ZICC_OVERHEAD_LENZMAX_BYTES_IN_MARKERZMAX_DATA_BYTES_IN_MARKER�markersrKrr@�bufsizerrrr%Cs�
		
					
	
 -	$+r%cCsgddl}ddl}|j�}|jdd||g�y|j|�Wntk
rbYnXdS)NrZcjpegz-outfile)r�r��_dumpr�r�r�)r�rr�r�r�r�rrr�_save_cjpeg�s
r+cCs�t||�}y?|j�}|ddkrMddlm}|||�}Wn6ttfk
rhYntk
r�tjd�YnX|S)Ni�r)�MpoImageFilezTImage appears to be a malformed MPO file, it will be interpreted as a base JPEG file)	r�r�ZMpoImagePluginr,r��
IndexErrorrB�warnings�warn)rr�r�Zmpheaderr,rrr�jpeg_factory�s
r0z.jfifz.jpez.jpgz.jpegz
image/jpeg)rTrUN)rVrWN)rXrYN)rZr[N)r\r]N)r^r_N)r`raN)rbrcN)rdreN)rfrgN)rhriN)rjrkN)rlrmN)rnroN)rprqN)rrrsN)rtruN)rvrwN)rxryN)rzr{N)r|r}N)r~rN)r�r�N)r�r�N)r�r�N)@rrrr>r;rr�r�r	rrr:r?r�r�r�r0rr r�r�r�r�r�r�r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr)rrrrrr)r	rrrrr)r	r	rrrr)-rPr"r�r.rZPILrrrrZPIL.JpegPresetsrZ	PIL._utilrr)r$Zi16ber
Zi32beZi32�__version__rr.r/rMrSr�r�r�r�r�r�rrr
r
rr%r+r0Z
register_openr�Z
register_saveZregister_extensionZ
register_mimerrrr�<module>#s�"				@
0u
-M�