3

h)                 @   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dMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dad&ZxBdbD ]:Zdd-e fed.e d/< dd-e fed0e d/<  qW xNdcD ]FZd3e d3e fed.e d/< d3e d3e fed0e d/<  qW xBddD ]:Zdd3e fed.e d/< dd3e fed0e d/< q:W x.ed5d6D ] Zdd-e fed0e d/< qW ejd7Zd8d9 ZG d:d; d;ejZdedfdgdhdidjdkdldmdndodpdqdrdsdIZdJdK Zejeje ejeje ejejdL dS )t    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1LRGBRGB;LRLBPP;2P;4II;32FF;32RGB;TRYB;TLALA;LPA;LRGBARGBA;LRGBXRGBX;LCMYK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88S1616S3232FzF;zL z imagezL*16L16BzI;32S   !   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 r1   Q/var/www/html/enquirykeeper_venv/lib/python3.6/site-packages/PIL/ImImagePlugin.pynumberj   s    r3   c               @   sP   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d ZdS )ImImageFileZIMzIFUNC Image MemoryFc             C   s  d| j jdkrtd| j jd d}d| jt< d)| jt< d| jt< d| _x| j jd}|dkrfqP| s||d	ks||d
kr~P || j j	  }t
|dkrtd|d*d  dkr|d d+ }n|d,d  dkr|d d- }ytj|}W n0 tjk
r } ztd|W Y d d }~X nX |r|jdd\}}|jdd}|jdd}|tttgkr|jdd}ttt|jd}t
|dkr|d }n"|tkr|tkrt| \}| _|tkr|| jkr| j| j| n|g| j|< n
|| j|< |tkr|d7 }qPtd|jdd qPW |s,td| jt | _| jt | _x*|rn|dd d
krn| j jd}qFW |s~tdt| jkr| j jd}d}d}	xZtdD ]N}
||
 ||
d    ko||
d  kn  r||
 |
krd}	nd}qW | jd.krh|r&|	sft|d d | _n@| jd/kr@d | _| _n| jd0krXd| _d| _t j!d|| _"n&| jdkr| s|	 rt|| _d| _#| j j$  | _%}| j | _&| jd d dkryDt'| jdd  }|d1krd!d2| j( ||dd"dd3ffg| _)d S W n t*k
r   Y nX | jd4kr| j(d | j(d  }d%d5| j( |d7fd%d8| 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   
zlatin-1replace*,zSyntax error in IM header: asciizNot an IM filezFile truncatedi      r   r   PAzPA;LzRGB;Lr   zF;          bit   RGB;TRYB;TrawGRB)r7   r7   rL   rM   )r
   r   r   r@   )r
   r   )r   r@   )rA   rB   rC   )r   r   rM   )rF   rG   )r   r   rM   )rI   r   rM   )r   r   rM   )rJ   r   rM   )r   r   rM   )rK   r   rM   )r   r   rM   )+fpreadSyntaxErrorseekinfoMODESIZEFRAMESrawmodereadlinelensplitmatchreerrorgroupdecodeSCALEr;   tuplemapr3   OPENCOMMENTappendTAGS_sizemodeLUTrangelistZlutr   rH   paletteframetell_ImImageFile__offset_ImImageFile__fpr-   sizetiler.   )selfnr0   mekvrk   Z	greyscaleZlinearioffsbitsrp   r1   r1   r2   _open{   s    







0


  zImImageFile._openc             C   s
   | j t S )N)rR   rU   )rr   r1   r1   r2   n_frames  s    zImImageFile.n_framesc             C   s   | j t dkS )Nr   )rR   rU   )rr   r1   r1   r2   is_animated  s    zImImageFile.is_animatedc             C   s   | j |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   rA   r      rH   )r   r   rM   )
Z_seek_checkrl   rg   rX   rp   rn   ro   rN   rV   rq   )rr   rl   rz   rp   ry   r1   r1   r2   rQ     s    

 zImImageFile.seekc             C   s   | j S )N)rl   )rr   r1   r1   r2   rm   -  s    zImImageFile.tellc             C   sB   z4y| j | jkr| j j  W n tk
r0   Y nX W d d | _ X d S )N)ro   rN   closeAttributeError)rr   r1   r1   r2   
_close__fp0  s    
zImImageFile._close__fpN)__name__
__module____qualname__formatformat_descriptionZ!_close_exclusive_fp_after_loadingr{   propertyr|   r}   rQ   rm   r   r1   r1   r1   r2   r4   u   s    r4   0 1	GreyscaleL 32SI;32SL 16I;16L 16LI;16LL 16BI;16BL 32FF;32FYCC)r	   r
   r   r   r@   r   zI;16zI;16LzI;16Br   r   r   r   r   r    c       	      C   sh  yt | j \}}W n6 tk
rH } ztd| j d|W Y d d }~X nX | jjdd}|jd| djd |rtj	j
tj	j|\}}dj|d d	t|  |g}|jd
| djd |jd| j jd |jd| djd | jdkr|jd |jdd|j   d  | jdkr@|j| jjdd tj| |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
r9   i  r:   r   zRGB;LrH   r   )r   r@   )r   r@   )r   r   rM   )SAVErg   KeyErrorr.   ZencoderinfogetwriteencodeospathsplitextbasenamejoinrX   rp   rm   imZ
getpaletter   _save)	r   rN   filenameZ
image_typerV   ru   r   nameextr1   r1   r2   r   S  s$    &
r   z.im)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   )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*   )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   )r   r   )r   r!   )r   r[   r   r   r   r   rc   ZDATEZ	EQUIPMENTrU   rh   NAMEr_   rT   rS   re   rb   rx   ri   compilerY   r3   r4   r   r   Zregister_openr   Zregister_saveZregister_extensionr1   r1   r1   r2   <module>   s   
 
 &
  
 M"