B
    eAds*                 @   s"  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x@dD ]8Zd d!e fed"e d#< d d!e fed$e d#< qW xLd%D ]DZd&e d&e fed"e d#< d&e d&e fed$e d#< qW xBd'D ]:Zd(d&e fed"e d#< d(d&e fed$e d#< q6W x.ed)d*D ] Zd d!e fed$e d#< qW ed+Zd,d- ZG d.d/ d/ejZd0d1dd2dd3d4d5d6d7ddddd8d9Zd:d; Zeeje eeje eejd< dS )=    N   )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
   )RGBzRGB;L)r   ZRLB)PzP;2)r   zP;4)r   r   )IzI;32)FzF;32)r   zRGB;T)r   zRYB;T)LAzLA;L)r   zPA;L)RGBAzRGBA;L)RGBXzRGBX;L)CMYKzCMYK;L)YCbCrz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   zF;zL z imagezL*)r   Z16L16BzI;)Z32Sr      !   s"   ^([A-Za-z][^:]*):[ \t]*(.*)[ \t]*$c             C   s&   yt | S  tk
r    t| S X d S )N)int
ValueErrorfloat)s r   C/var/www/html/venv/lib/python3.7/site-packages/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| _x| j d}|dkrjqT|r~|d	ks~|d
krP || j 	  }t
|dkrd}t||dd  dkr|d d }n|dd  dkr|d d }yt|}W n4 tjk
r" } zd}t||W d d }~X Y nX |r|dd\}}|dd}|dd}|tttg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 }qTd|dd }t|qTW |s>d}t|| jt | _| jt | _x*|r|d d d
kr| j d}qXW |sd}t|t| jkr| j d}d}	d}
xZtdD ]N}|| ||d    kr||d  krn n|| |kr
d}
nd}	qW | jdkr~|	r<|
s|t|d d | _n@| jdkrVd | _| _n| jdkrnd| _d| _t !d || _"n"| jd!kr|	r|
st|| _d| _#| j $  | _%}| j | _&| jd d d"kr.yDt'| jdd  }|d#krd$d%| j( ||d&d'ddffg| _)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
   )i   i   r             s   
r   zlatin-1replace*,zSyntax error in IM header: asciizNot an IM filezFile truncatedi      i   )r
   r   r   PA)r
   r   r   )r   r-   r-   zPA;LzRGB;Lr   zF;)          bit)r   r   r.      )zRGB;TzRYB;Traw)Gr   r'   )Rr   r'   )Br   r'   )+fpreadSyntaxErrorseekinfoMODESIZEFRAMESrawmodereadlinelensplitmatchreerrorgroupdecodeSCALEr(   tuplemapr   OPENCOMMENTappendTAGS_sizemodeLUTrangelistZlutr   r3   paletteframetell_ImImageFile__offset_fpr   sizetiler   )selfmsgnr   mekvrT   Z	greyscaleZlinearioffsbitsrY   r   r   r   _openz   s    







0


  zImImageFile._openc             C   s
   | j t S )N)r;   r>   )r[   r   r   r   n_frames  s    zImImageFile.n_framesc             C   s   | j t dkS )Nr   )r;   r>   )r[   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   r.   r      r3   )r   r   r'   )
Z_seek_checkrU   rP   rA   rY   rW   rX   r7   r?   rZ   )r[   rU   rd   rY   rc   r   r   r   r:     s    

 zImImageFile.seekc             C   s   | j S )N)rU   )r[   r   r   r   rV   +  s    zImImageFile.tellN)__name__
__module____qualname__formatformat_descriptionZ!_close_exclusive_fp_after_loadingre   propertyrf   rg   r:   rV   r   r   r   r   r    u   s    r    )z0 1r	   )	Greyscaler
   )ro   r   )zL 32SzI;32S)zL 16zI;16)zL 16LzI;16L)zL 16BzI;16B)zL 32FzF;32F)ZYCCzYCbCr;L)r	   r
   r   r   r-   r   zI;16zI;16LzI;16Br   r   r   r   r   r   c          
   C   s  yt | j \}}W n: tk
rL } zd| j d}t||W d 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}x>tdD ]2}||
|| ||d   7 }|dd|  7 }qXW || 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
r+    \   zName: z
zImage size (x*y): %d*%d
zFile size (no of images): )r   r-   s   Lut: 1
r$   i  r%   r   zRGB;Lr2       r,   r3   )r   r   r   r'   )SAVErP   KeyErrorr   ZencoderinfogetwriteencodeospathsplitextbasenamejoinrA   rY   rV   imZ
getpaletterR   r   _save)r~   r7   filenameZ
image_typer?   r_   r\   rp   nameextZ
im_palettecolorsrT   rb   r   r   r   r   H  s2    

r   z.im)ry   rD   rq   r   r   r   rL   ZDATEZ	EQUIPMENTr>   rQ   NAMErH   r=   r<   rN   rK   rb   rR   compilerB   r   r    rt   r   Zregister_openrl   Zregister_saveZregister_extensionr   r   r   r   <module>   s   

 $
  
 B(