
hR\'                 @   sR  d  d l  Z  d d l m Z m Z m Z d d l m Z d Z d Z d Z	 d Z
 d	 Z d
 Z d Z d Z d Z d Z i	 d  e 6d  e	 6d  e
 6d  e 6d  e 6d  e 6d  e 6d  e 6d  e 6Z i da d 6db d 6dc d 6dd d 6de d 6df d 6dg d 6dh d 6di d 6dj d  6dk d! 6dl d$ 6dm d' 6dn d) 6do d+ 6dp d. 6dq d1 6dr d4 6ds d7 6dt d: 6Z xP d; d< d= d> d? d@ g D]6 Z d% dA e f e dB e <d% dA e f e dC e <qdWxO d= dD dE g D]> Z dF e dF e f e dB e <dF e dF e f e dC e <qWxA dG g D]6 Z d" dF e f e dB e <d" dF e f e dC e <qWx/ e dH dI  D] Z d% dA e f e dC e <qDWe  j dJ  Z dK dL   Z GdM dN   dN e j  Z i du d 6dv d 6dw d, 6dx d 6dy dR 6dz d" 6d{ dV 6d| dX 6d} dZ 6d~ d% 6d d 6d d/ 6d d2 6d d5 6d d8 6Z d^ d_   Z e j e j e  e j e j e  e j e j d`  d S)    N   )Image	ImageFileImagePalette)i8z0.7CommentDatezDigitalization equipmentzFile size (no of images)ZLutNamezScale (x,y)zImage size (x*y)z
Image type1z	0 1 imagez	L 1 imageLzGreyscale imagezGrayscale imageRGBRGB;Lz	RGB imageRLBz	RLB imagez	RYB imagezB1 imagePP;2zB2 imageP;4zB4 imagez
X 24 imageII;32zL 32 S imageFF;32zL 32 F imageRGB;Tz
RGB3 imageRYB;Tz
RYB3 imageLALA;LzLA imageRGBARGBA;Lz
RGBA imageRGBXRGBX;Lz
RGBX imageCMYKCMYK;Lz
CMYK imageYCbCrYCbCr;Lz	YCC image8Z8SZ16Z16SZ32Z32FzF;%sz
L %s imagez
L*%s imageZ16LZ16BzI;%sZ32S   !   s"   ^([A-Za-z][^:]*):[ \t]*(.*)[ \t]*$c             C   s1   y t  |   SWn t k
 r, t |   SYn Xd  S)N)int
ValueErrorfloat)s r)   F/var/www/dbchiro/venv/lib/python3.4/site-packages/PIL/ImImagePlugin.pynumberb   s    r+   c               @   sj   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   sV  d |  j  j d  k r' t d   n  |  j  j d  d } d |  j t <d+ |  j t <d |  j t <d |  _ x||  j  j d  } | d k r qp n  | s | d	 k s | d
 k r Pn  | |  j  j	   } t
 |  d k r t d   n  | d, d   d k r| d  d-  } n) | d. d   d k r=| d  d/  } n  y t j |  } Wn4 t j k
 r} z t d   WYd  d  } ~ Xn X| r| j d d  \ } } | j d d  } | j d d  } | t t t g k r0| j d d  } t t t | j d    } t
 |  d k r^| d } q^n. | t k r^| t k r^t | \ } |  _ n  | t k r| |  j k r|  j | j |  q| g |  j | <n | |  j | <| t k r| d 7} qqp t d | j d d    qp W| st d   n  |  j t |  _ |  j t |  _ x2 | rU| d d  d
 k rU|  j  j d  } q$W| skt d   n  t |  j k r|  j  j d  } d } d } xl t d  D]^ }	 | |	 | |	 d k o| |	 d k n rt | |	  |	 k rd } qqd } qW|  j d k s%|  j d k r| rW| sd d   | d  d  D |  _ qq|  j d k ryd |  _ |  _ n" |  j d k rd |  _ |  _ n  t  j! d |  |  _" q|  j d k r| s| rd d   | D |  _ qqn  d |  _# |  j  j$   |  _% }
 |  j  |  _& |  j d  d  d k ry[ t' |  j d d    } | d0 k rd# d1 |  j |
 | d  d$ d d2 f f g |  _( d  SWqt) k
 rYqXn  |  j d3 k r'|  j d |  j d } d' d4 |  j |
 d6 f d' d7 |  j |
 | d9 f d' d: |  j |
 d | d< f g |  _( n+ d' d= |  j |
 |  j d d> f f g |  _( d  S)?Ns   
d   znot an IM filer   r      r   s   s    s   r#   s   
zlatin-1replace*,zSyntax error in IM header: asciizNot an IM filezFile truncatedi      r   c             S   s   g  |  ] } t  |   q Sr)   )r   ).0cr)   r)   r*   
<listcomp>   s   	 z%ImImageFile._open.<locals>.<listcomp>r   PAzRGB;Lr   c             S   s   g  |  ] } t  |   q Sr)   )r   )r4   r5   r)   r)   r*   r6      s   	 zF;          bit   RGB;TRYB;TrawGRB)r.   r.   rC   rD   )r8   r9   r:   )r   r   rD   )r=   r>   )r   r   rD   )r@   r   rD   )r   r   rD   )rA   r   rD   )r   r   rD   )rB   r   rD   )r   r   rD   )*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ranger   Zlutr   r?   paletteframetell_ImImageFile__offset_ImImageFile__fpr%   tiler&   )selfnr(   mvkra   Z	greyscalelinearioffsbitsr]   r)   r)   r*   _openr   s    	0
&	*zImImageFile._openc             C   s   |  j  t S)N)rI   rL   )rg   r)   r)   r*   n_frames  s    zImImageFile.n_framesc             C   s   |  j  t d k S)Nr   )rI   rL   )rg   r)   r)   r*   is_animated  s    zImImageFile.is_animatedc             C   s   |  j  |  s d  S| |  _ |  j d k r4 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   r8   r      r?   )r   r   rD   )
Z_seek_checkrb   r^   rO   r]   rd   re   rE   rM   rf   )rg   rb   ro   r]   rn   r)   r)   r*   rH     s    		$zImImageFile.seekc             C   s   |  j  S)N)rb   )rg   r)   r)   r*   rc   "  s    zImImageFile.tellN)__name__
__module____qualname__formatZformat_descriptionZ!_close_exclusive_fp_after_loadingrp   propertyrq   rr   rH   rc   r)   r)   r)   r*   r,   l   s   r,   0 1	GreyscalePA;Lr7   L 32SI;32SL 16I;16L 16LI;16LL 16BI;16BL 32FF;32FYCCc             C   sj  y t  |  j \ } } Wn% t k
 r> t d |  j   Yn X|  j j d d  } | j d | j d   | r | j d | j d   n  | j d |  j j d   | j d | j d   |  j d	 k r | j d
  n  | j d d | j	   d  |  j d	 k r4| j |  j
 j d d   n  t j |  | d d |  j d | d d f f g  d  S)NzCannot save %s images as IMframesr   zImage type: %s image
r2   z
Name: %s
zImage size (x*y): %d*%d
zFile size (no of images): %d
r   s   Lut: 1
s    i  s   r   zRGB;Lr?   r   )r   r   rD   )SAVEr^   KeyErrorr&   Zencoderinfogetwriteencoder]   rc   imZ
getpaletter   _save)r   rE   filenameZ
image_typerM   r   r)   r)   r*   r   =  s     r   z.im)r
   r
   )r
   r
   )r   r   )r   r   )RGBr   )r   r   )r   r   )r
   r
   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )LAr   )r   r   )r   r   )r   r   )r    r!   )ry   r
   )rz   r   )r   r   )rz   r   )r   r{   )r|   r}   )r~   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r!   )rR    r   r   r   Z_binaryr   __version__rZ   ZDATEZ	EQUIPMENTrL   r_   NAMErV   rK   rJ   r\   rY   rm   r`   compilerP   r+   r,   r   r   Zregister_openrw   Zregister_saveZregister_extensionr)   r)   r)   r*   <module>   s   -
 

