U
    M»{jp+  ã                   @  sB  d dl mZ d dlZd dlZd dlmZmZ ddlmZm	Z	m
Z
 dZdZdZd	Zd
ZdZdZdZdZed ed ed ed ed ed ed ed ed i	Zdddddddddddddddddddddd œZd!D ]8Zd"d#e› �fed$e› d%�< d"d#e› �fed&e› d%�< qÀd'D ]DZd(e› �d(e› �fed$e› d%�< d(e› �d(e› �fed&e› d%�< qþd)D ]:Zd*d(e› �fed$e› d%�< d*d(e› �fed&e› d%�< �qHed+d,ƒD ] Zd"d#e› �fed&e› d%�< �qŽe d-¡Zd.d/d0œd1d2„ZG d3d4„ d4e	j	ƒZd5d6dd7dd8d9d:d;d<ddd=dd>d?œZd@dAdBdCdDœdEdF„Ze ej e¡ e !ej e¡ e "ej dG¡ dS )Hé    )ÚannotationsN)ÚIOÚAnyé   )ÚImageÚ	ImageFileÚImagePaletteÚCommentÚDatezDigitalization equipmentzFile size (no of images)ZLutÚNamezScale (x,y)zImage size (x*y)z
Image type)Ú1r   )ÚLr   )ÚRGBúRGB;L)r   ZRLB)ÚPzP;2)r   zP;4)r   r   )ÚIzI;32)ÚFzF;32)r   úRGB;T)r   úRYB;T)ÚLAzLA;L)r   úPA;L)ÚRGBAzRGBA;L)r   úRGBX;L)ÚCMYKzCMYK;L)ÚYCbCrúYCbCr;L)z	0 1 imagez	L 1 imagezGreyscale imagezGrayscale imagez	RGB imagez	RLB imagez	RYB imagezB1 imagezB2 imagezB4 imagez
X 24 imagezL 32 S imagezL 32 F imagez
RGB3 imagez
RYB3 imagezLA imagezPA imagez
RGBA imagez
RGBX imagez
CMYK imagez	YCC image)Ú8Z8SÚ16Z16SZ32Z32Fr   úF;zL z imagezL*)r   Z16LÚ16BzI;)Z32Sr   é   é!   s"   ^([A-Za-z][^:]*):[ \t]*(.*)[ \t]*$r   Úfloat)ÚsÚreturnc                 C  s,   z
t | ƒW S  tk
r&   t| ƒ Y S X d S ©N)ÚintÚ
ValueErrorr"   )r#   © r(   úP/var/www/html/bwave/python/venv/lib/python3.8/site-packages/PIL/ImImagePlugin.pyÚnumberk   s    
r*   c                   @  sh   e Zd ZdZdZdZddœdd„Zeddœd	d
„ƒZeddœdd„ƒZ	dddœdd„Z
ddœdd„ZdS )ÚImImageFileZIMzIFUNC Image MemoryFÚNone)r$   c              
   C  s¬  d| j  d¡krd}t|ƒ‚| j  d¡ d}d| jt< d| jt< d| jt< d| _| j  d¡}|dkrfqP|rz|d	ksz|d
kr~�q*|| j  	¡  }t
|ƒdkr¤d}t|ƒ‚|dd … dkrÂ|d d… }n|dd … dkrÞ|d d… }zt |¡}W n4 tjk
�r  } zd}t|ƒ|‚W 5 d }~X Y nX |�r| dd¡\}}| dd¡}| dd¡}|tttfk�r˜| dd¡}ttt| d¡ƒƒ}t
|ƒdk�rº|d }n"|tk�rº|tk�rºt| \}| _|tk�rð|| jk�râ| j|  |¡ n|g| j|< n
|| j|< |tk�r(|d7 }qPd| dd¡› �}t|ƒ‚qP|�s<d}t|ƒ‚| jt | _| jt | _|�r||d d… d
k�r|| j  d¡}�qT|�sŽd}t|ƒ‚t| jk�r–| j  d¡}d}	d}
tdƒD ]N}|| ||d    k�ræ||d  k�rþn n|| |k�rd}
nd}	�q¶| jdk�rt|	�r2|
�srt|d d… ƒ| _ n@| jdk�rLd | _| _n| jdk�rdd| _d| _t! "d |¡| _#n"| jd!k�r–|	�rŒ|
�s–t|ƒ| _ d| _$| j  %¡  | _&}| j | _'| jd d… d"k�r&zFt(| jdd … ƒ}|d#k�rd$d%| j) ||d&d'ddffg| _*W d S W n t+k
�r$   Y nX | jd(k�rŠ| j)d | j)d  }d)d%| j) |d*fd)d%| j) || d+fd)d%| j) |d|  d,fg| _*nd)d%| j) || jddffg| _*d S )-Nó   
éd   znot an IM filer   r   )é   r/   r   ó   ó    ó   éþÿÿÿs   
éÿÿÿÿr    zlatin-1ÚreplaceÚ*ú,zSyntax error in IM header: ÚasciizNot an IM filezFile truncatedi   é   r/   )r   r   r   ÚPA)r   r   r   )r   r:   r:   r   r   r   r   )é   é   é    Úbit©r   r   r;   é   )r   r   Úraw)ÚGr   r4   )ÚRr   r4   )ÚBr   r4   ),ÚfpÚreadÚSyntaxErrorÚseekÚinfoÚMODEÚSIZEÚFRAMESÚrawmodeÚreadlineÚlenÚsplitÚmatchÚreÚerrorÚgroupÚdecodeÚSCALEr5   ÚtupleÚmapr*   ÚOPENÚCOMMENTÚappendÚTAGSÚ_sizeÚ_modeÚLUTÚrangeÚmodeÚlistZlutr   rA   ÚpaletteÚframeÚtellÚ_ImImageFile__offsetÚ_fpr&   ÚsizeÚtiler'   )ÚselfÚmsgÚnr#   ÚmÚeÚkÚvrc   Z	greyscaleZlinearÚiÚoffsÚbitsrh   r(   r(   r)   Ú_open{   sÂ    








0

 
ýzImImageFile._openr&   c                 C  s
   | j t S r%   ©rI   rL   ©rj   r(   r(   r)   Ún_frames  s    zImImageFile.n_framesÚboolc                 C  s   | j t dkS )Nr   ru   rv   r(   r(   r)   Úis_animated  s    zImImageFile.is_animated)rd   r$   c                 C  sŠ   |   |¡sd S || _| jdkr$d}ndt| jƒ }| jd | d d | jd  }| j||  }| j| _dd| j || jddffg| _	d S )	Nr   r   r;   r   é   rA   r?   r4   )
Z_seek_checkrd   ra   rO   rh   rf   rg   rE   rM   ri   )rj   rd   rs   rh   rr   r(   r(   r)   rH     s    

 zImImageFile.seekc                 C  s   | j S r%   )rd   rv   r(   r(   r)   re   ,  s    zImImageFile.tellN)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionZ!_close_exclusive_fp_after_loadingrt   Úpropertyrw   ry   rH   re   r(   r(   r(   r)   r+   v   s    r+   )z0 1r   )Ú	Greyscaler   )r�   r   )zL 32SzI;32S)zL 16úI;16)zL 16LúI;16L)zL 16BúI;16B)zL 32FzF;32F)ÚRGBXr   )ZYCCr   )r   r   r   r   r:   r   r‚   rƒ   r„   r   r   r   r…   r   r   zImage.Imagez	IO[bytes]zstr | bytesr,   )ÚimrE   Úfilenamer$   c              
   C  sÐ  zt | j \}}W n: tk
rL } zd| j› d�}t|ƒ|‚W 5 d }~X Y nX | j dd¡}| d|› d� d¡¡ |rÚt|t	ƒrŒ| 
d¡}tj tj |¡¡\}}	d |d d	t|	ƒ … |	g¡}| d
|› d� d¡¡ | d| j  d¡¡ | d|› d� d¡¡ | jdk�r| d¡ | dd| ¡   d ¡ | jdk�r¨| j dd¡}
t|
ƒd }d}tdƒD ]2}||
|| ||d  … 7 }|dd|  7 }�qj| |¡ t | |dd| j d|ddffg¡ d S )NzCannot save z images as IMÚframesr   zImage type: z image
r8   Ú é\   zName: z
zImage size (x*y): %d*%d
zFile size (no of images): )r   r:   s   Lut: 1
r1   iÿ  r2   r   r   r@   ó    r9   rA   r?   r   r4   )ÚSAVEra   ÚKeyErrorr'   ZencoderinfoÚgetÚwriteÚencodeÚ
isinstanceÚbytesrU   ÚosÚpathÚsplitextÚbasenameÚjoinrO   rh   re   r†   Z
getpaletter`   r   Ú_save)r†   rE   r‡   Z
image_typerM   rn   rk   rˆ   ÚnameÚextZ
im_paletteÚcolorsrc   rq   r(   r(   r)   r˜   I  s6    



r˜   z.im)#Ú
__future__r   r“   rR   Útypingr   r   r‰   r   r   r   rZ   ZDATEZ	EQUIPMENTrL   r_   ÚNAMErV   rK   rJ   r\   rY   rq   r`   ÚjÚcompilerP   r*   r+   rŒ   r˜   Zregister_openr~   Zregister_saveZregister_extensionr(   r(   r(   r)   Ú<module>   s²            ÷è "
 Bð*