
 XE(                 @   sU  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 d` d 6da 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 d0 6dq d3 6dr d6 6ds d9 6Z xP d: d; d< d= d> d? g D]6 Z d$ d@ e f e dA e <d$ d@ e f e dB e <qdWxO d< dC dD g D]> Z dE e dE e f e dA e <dE e dE e f e dB e <qWxA dF g D]6 Z d! dE e f e dA e <d! dE e f e dB e <qWx/ e dG dH  D] Z d$ d@ e f e dB e <qDWe  j dI  Z dJ dK   Z GdL dM   dM e j  Z i dt d 6du d 6dv d+ 6dw d 6dx dQ 6dy d! 6dz dU 6d{ dW 6d| dY 6d} d$ 6d~ d 6d d. 6d d1 6d d4 6d d7 6Z d  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(   N/home/ubuntu/projects/ifolica/lib/python3.4/site-packages/PIL/ImImagePlugin.pynumberb   s    r*   c               @   sd   e  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 Memoryc             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
         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)   _openq   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   | d k  s | |  j  t k r. t d   n  |  j | k rA d  S| |  _ |  j d k rb 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   zseek outside sequencer	   r.   r8      r?   )r   r   rD   )rI   rL   EOFErrorrb   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_descriptionrp   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   s  y t  |  j \ } } Wn% t k
 r> t d |  j   Yn Xy |  j d } Wn t k
 rj d } Yn X| ru | S| 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 rU| 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writeencoder]   rc   imZ
getpaletter   _save)r   rE   filenamecheckZ
image_typerM   r   r(   r(   r)   r   A  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    )rz   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    )rR   ZPILr   r   r   ZPIL._binaryr   __version__rZ   ZDATEZ	EQUIPMENTrL   r_   NAMErV   rK   rJ   r\   rY   rm   r`   compilerP   r*   r+   r   r   Zregister_openrx   Zregister_saveZregister_extensionr(   r(   r(   r)   <module>   s   -
 

