U
    Evf*                     @  s  d dl mZ d dlZd dl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$< qd&D ]DZd'e d'e fed#e d$< d'e d'e fed%e d$< qd(D ]:Zd)d'e fed#e d$< d)d'e fed%e d$< q8ed*d+D ] Zd!d"e fed%e d$< q~ed,Zd-d. ZG d/d0 d0ejZd1d2dd3dd4d5d6d7d8ddddd9d:Zd;d< Zeeje eeje eejd= dS )>    )annotationsN   )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)RGBXz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16LZ16BzI;)Z32Sr      !   s"   ^([A-Za-z][^:]*):[ \t]*(.*)[ \t]*$c                 C  s,   z
t | W S  tk
r&   t|  Y S X d S N)int
ValueErrorfloat)s r$   5/tmp/pip-unpacked-wheel-ciywl2yd/PIL/ImImagePlugin.pynumberj   s    
r&   c                   @  sH   e Zd ZdZdZdZdd Zedd Zedd	 Z	d
d Z
dd ZdS )ImImageFileZIMzIFUNC Image MemoryFc              
   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rd}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rt| \}| _|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 | _|rz|d d d
krz| j d}qR|sd}t|t| jkr| j d}d}	d}
tdD ]N}|| ||d    kr||d  krn n|| |kr d}
nd}	q| jdkrr|	r0|
spt|d d | _ n@| jdkrJd | _| _n| jdkrbd| _d| _t!"d || _#n"| jd!kr|	r|
st|| _ 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   r5   r5   r   r   r   r   )          bitr   r   r6      )r   r   raw)Gr   r/   )Rr   r/   )Br   r/   ),fpreadSyntaxErrorseekinfoMODESIZEFRAMESrawmodereadlinelensplitmatchreerrorgroupdecodeSCALEr0   tuplemapr&   OPENCOMMENTappendTAGS_size_modeLUTrangemodelistZlutr   r<   paletteframetell_ImImageFile__offset_fpr    sizetiler!   )selfmsgnr#   mekvr^   Z	greyscaleZlinearioffsbitsrc   r$   r$   r%   _openz   s    








0

 
zImImageFile._openc                 C  s
   | j t S r   rD   rG   re   r$   r$   r%   n_frames  s    zImImageFile.n_framesc                 C  s   | j t dkS )Nr   rp   rq   r$   r$   r%   is_animated  s    zImImageFile.is_animatedc                 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   r6   r      r<   r:   r/   )
Z_seek_checkr_   r\   rJ   rc   ra   rb   r@   rH   rd   )re   r_   rn   rc   rm   r$   r$   r%   rC     s    

 zImImageFile.seekc                 C  s   | j S r   )r_   rq   r$   r$   r%   r`   +  s    zImImageFile.tellN)__name__
__module____qualname__formatformat_descriptionZ!_close_exclusive_fp_after_loadingro   propertyrr   rs   rC   r`   r$   r$   r$   r%   r'   u   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)ZYCCr   )r
   r   r   r   r5   r   r|   r}   r~   r   r   r   r   r   r   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 |rt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 }qV|| 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
r3    \   zName: z
zImage size (x*y): %d*%d
zFile size (no of images): )r   r5   s   Lut: 1
r,   i  r-   r   r   r;       r4   r<   r:   r   r/   )SAVEr\   KeyErrorr!   ZencoderinfogetwriteencodeospathsplitextbasenamejoinrJ   rc   r`   imZ
getpaletter[   r   _save)r   r@   filenameZ
image_typerH   ri   rf   r   nameextZ
im_palettecolorsr^   rl   r$   r$   r%   r   H  s2    

r   z.im) 
__future__r   r   rM   r   r   r   r   rU   ZDATEZ	EQUIPMENTrG   rZ   NAMErQ   rF   rE   rW   rT   rl   r[   jcompilerK   r&   r'   r   r   Zregister_openrx   Zregister_saveZregister_extensionr$   r$   r$   r%   <module>   s             "
 B(