ó
î Xc           @   sF  d  Z  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 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 d1 6dq d4 6dr d7 6ds 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   Z dL e j f dM     YZ 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 d2 6d d5 6d d8 6Z d d]  Z e j d^ e  e j d^ e  e j d^ d_  d S(   s   0.7i˙˙˙˙N(   t   Imaget	   ImageFilet   ImagePalette(   t   i8t   Commentt   Dates   Digitalization equipments   File size (no of images)t   Lutt   Names   Scale (x,y)s   Image size (x*y)s
   Image typei    t   1s	   0 1 images	   L 1 imaget   Ls   Greyscale images   Grayscale imaget   RGBs   RGB;Ls	   RGB imaget   RLBs	   RLB images	   RYB images   B1 imaget   Ps   P;2s   B2 images   P;4s   B4 images
   X 24 imaget   Is   I;32s   L 32 S imaget   Fs   F;32s   L 32 F images   RGB;Ts
   RGB3 images   RYB;Ts
   RYB3 imaget   LAs   LA;Ls   LA imaget   RGBAs   RGBA;Ls
   RGBA imaget   RGBXs   RGBX;Ls
   RGBX imaget   CMYKs   CMYK;Ls
   CMYK imaget   YCbCrs   YCbCr;Ls	   YCC imaget   8t   8St   16t   16St   32t   32Fs   F;%ss
   L %s images
   L*%s imaget   16Lt   16Bs   I;%st   32Si   i!   s"   ^([A-Za-z][^:]*):[ \t]*(.*)[ \t]*$c         C   s-   y t  |   SWn t k
 r( t |   SXd  S(   N(   t   intt
   ValueErrort   float(   t   s(    (    s5   /usr/lib/python2.7/dist-packages/PIL/ImImagePlugin.pyt   numberb   s    t   ImImageFilec           B   s/   e  Z d  Z d Z d   Z d   Z d   Z RS(   t   IMs   IFUNC Image Memoryc         C   s4  d |  j  j d  k r' t d   n  |  j  j d  d } d |  j t <d* |  j t <d |  j t <d |  _ xXt	 rÇ|  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 k r| d  } n | d d k r+| d  } n  y t j |  } Wn" t j k
 rb} t d   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 } q:n. | t k r:| t k r:t | \ } |  _ n  | t k r| |  j k rl|  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 |  _ x/ | r.| d d !d
 k r.|  j  j d  } q W| sD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| r6| sg  | d  D] }
 t |
  ^ q|  _  qq×|  j d k rXd |  _ |  _ n" |  j d k rzd |  _ |  _ n  t! j" d |  |  _# qÚ|  j d k rÚ| sŻ| r×g  | D] }
 t |
  ^ qś|  _  q×qÚn  d |  _$ |  j  j%   |  _& } |  j  |  _' |  j d  d k ryU t( |  j d  } | d+ k rld" d, |  j | | d d# d d f f g |  _) d  SWqt* k
 rqXn  |  j d- k r|  j d |  j d } d& d. |  j | d/ f d& d0 |  j | | d1 f d& d2 |  j | d | d3 f g |  _) n+ d& d4 |  j | |  j d d f f g |  _) d  S(5   Ns   
id   s   not an IM filei    R	   i   i   s   t    s   iţ˙˙˙s   
i˙˙˙˙i   s   latin-1t   replacet   *t   ,s   Syntax error in IM header: t   asciis   Not an IM files   File truncatedi   i   R   R   t   PAs   RGB;LR
   s   F;i   i   i    t   biti   s   RGB;Ts   RYB;Tt   rawt   Gt   Rt   B(   i   i   (   i   i   i    (   i    i    (   s   RGB;Ts   RYB;T(   i    i    (   R,   i    i˙˙˙˙(   i    i    (   R-   i    i˙˙˙˙(   i    i    (   R.   i    i˙˙˙˙(   i    i    (+   t   fpt   readt   SyntaxErrort   seekt   infot   MODEt   SIZEt   FRAMESt   rawmodet   Truet   readlinet   lent   splitt   matcht   ret   errort   groupt   decodet   SCALER%   t   tuplet   mapR!   t   OPENt   COMMENTt   appendt   TAGSt   sizet   modet   LUTt   rangeR   t   lutR   R+   t   palettet   framet   tellt   _ImImageFile__offsett   _ImImageFile__fpR   t   tileR   (   t   selft   nR    t   mt   vt   kRM   t	   greyscalet   lineart   it   ct   offst   bitsRH   (    (    s5   /usr/lib/python2.7/dist-packages/PIL/ImImagePlugin.pyt   _openq   sş    		0
,+	*c         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(
   Ni    s   seek outside sequenceR   i   i   i   R+   i˙˙˙˙(   i    i    (   R3   R6   t   EOFErrorRN   RI   R:   RH   RP   RQ   R/   R7   RR   (   RS   RN   R]   RH   R\   (    (    s5   /usr/lib/python2.7/dist-packages/PIL/ImImagePlugin.pyR2     s    		$c         C   s   |  j  S(   N(   RN   (   RS   (    (    s5   /usr/lib/python2.7/dist-packages/PIL/ImImagePlugin.pyRO     s    (   t   __name__t
   __module__t   formatt   format_descriptionR^   R2   RO   (    (    (    s5   /usr/lib/python2.7/dist-packages/PIL/ImImagePlugin.pyR"   l   s
   		s   0 1t	   Greyscales   PA;LR)   s   L 32Ss   I;32Ss   L 16s   I;16s   L 16Ls   I;16Ls   L 16Bs   I;16Bs   L 32Fs   F;32Ft   YCCc      	   C   s  y t  |  j \ } } Wn$ t k
 r= t d |  j   n Xy |  j d } Wn t k
 rh d } n X| rs | 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 rS| j |  j	 j
 d d   n  t j |  | d d |  j d | d d f f g  d  S(   Ns   Cannot save %s images as IMt   framesi   s   Image type: %s image
R(   s
   Name: %s
s   Image size (x*y): %d*%d
s   File size (no of images): %d
R   s   Lut: 1
R$   i˙  s   R
   s   RGB;LR+   i    i˙˙˙˙(   i    i    (   t   SAVERI   t   KeyErrorR   t   encoderinfot   writet   encodeRH   RO   t   imt
   getpaletteR   t   _save(   Rl   R/   t   filenamet   checkt   typeR7   Rf   (    (    s5   /usr/lib/python2.7/dist-packages/PIL/ImImagePlugin.pyRn   9  s*    
R#   s   .im(   R   R   (   R   R   (   R	   R	   (   R	   R	   (   s   RGBs   RGB;L(   s   RGBR   (   s   RGBR   (   R   R   (   R   s   P;2(   R   s   P;4(   s   RGBs   RGB(   R   s   I;32(   R   s   F;32(   s   RGBs   RGB;T(   s   RGBs   RYB;T(   s   LAs   LA;L(   R   s   RGBA;L(   R   s   RGBX;L(   R   s   CMYK;L(   R   s   YCbCr;L(   s   0 1R   (   Rd   R	   (   s   LAs   LA;L(   Rd   R   (   s   LAs   PA;L(   s   L 32Ss   I;32S(   s   L 16s   I;16(   s   L 16Ls   I;16L(   s   L 16Bs   I;16B(   s   L 32Fs   F;32F(   s   RGBs   RGB;L(   R   s   RGBA;L(   R   s   RGBX;L(   R   s   CMYK;L(   Re   s   YCbCr;L(   t   __version__R=   t   PILR    R   R   t   PIL._binaryR   RE   t   DATEt	   EQUIPMENTR6   RJ   t   NAMERA   R5   R4   RG   RD   RZ   RK   t   compileR;   R!   R"   Rg   Rn   t   register_opent   register_savet   register_extension(    (    (    s5   /usr/lib/python2.7/dist-packages/PIL/ImImagePlugin.pyt   <module>   s   -
 	
š
