
 X                 @   s   d  d l  m Z m Z m Z m Z d Z e j Z e j Z e j	 Z
 e j Z d d   Z Gd d   d e j  Z e j e j e e  e j e j d  e j e j d  d	 S)
    )Image	ImageFileImagePalette_binaryz0.2c             C   s,   t  |   d k o+ t |  d d   d k S)N          )r   r	   )leni16)prefix r   O/home/ubuntu/projects/ifolica/lib/python3.4/site-packages/PIL/FliImagePlugin.py_accept    s    r   c               @   s|   e  Z d  Z d Z d Z d d   Z d d   Z e d d    Z e d	 d
    Z	 d d   Z
 d d   Z d d   Z d S)FliImageFileZFLIzAutodesk FLI/FLC Animationc             C   sr  |  j  j d  } t | d d   } | d  k oc t | d d   d! k oc | d
 d  d k su t d   n  d |  _ t | d d   t | d d   f |  _ t | d d
   } | d k r | d d } n  | |  j d <d d   t d  D } |  j  j d  } d |  _	 t | d d   d k rh|  j	 t |  |  _	 |  j  j d  } n  t | d d   d k r|  j  j d  } t | d d   d k r|  j
 | d  qt | d d   d k r|  j
 | d  qn  d d   | D } t j d d j |   |  _ d" |  _ |  j  |  _ |  j  j   |  _ d  |  _ d  |  _ |  j d  d  S)#N   r   r             r            s     znot an FLI/FLC fileP   
      i  F   durationc             S   s   g  |  ] } | | | f  q Sr   r   ).0ar   r   r   
<listcomp>B   s   	 z&FliImageFile._open.<locals>.<listcomp>   i   i        c             S   s9   g  |  ]/ \ } } } t  |  t  |  t  |   q Sr   )o8)r   rgbr   r   r   r!   U   s   	 ZRGB       )r   r   )r   r   )fpreadr   SyntaxErrormodesizei32inforange_FliImageFile__offset_paletter   rawjoinpalette_FliImageFile__frame_FliImageFile__fptell_FliImageFile__rewind	_n_frames_is_animatedseek)selfsmagicr   r8   r   r   r   _open-   s@    	/				zFliImageFile._openc       
      C   s  d } xt  t |  j j d    D] } |  j j d  } | t | d  } t | d  } | d k rv d } n  |  j j | d  } x t  d t |  d  D]g } t | |  | >} t | | d  | >} t | | d  | >}	 | | |	 f | | <| d 7} q Wq% Wd  S)Nr   r$   r*   r"   r   )r3   r   r,   r-   i8r
   )
r@   r8   shiftierA   nr&   r'   r(   r   r   r   r5   `   s    %	zFliImageFile._palettec             C   s|   |  j  d  k ru |  j   } y" x |  j |  j   d  q! WWn% t k
 rd |  j   d |  _  Yn X|  j |  n  |  j  S)Nr*   )r=   r;   r?   EOFError)r@   currentr   r   r   n_framesr   s    zFliImageFile.n_framesc             C   sj   |  j  d  k rc |  j   } y |  j d  d |  _  Wn t k
 rR d |  _  Yn X|  j |  n  |  j  S)Nr*   TF)r>   r;   r?   rI   )r@   rJ   r   r   r   is_animated~   s    zFliImageFile.is_animatedc             C   s   | |  j  k r d  S| |  j  k  r2 |  j d  n  |  j  } xa t |  j  d | d  D]E } y |  j |  WqV t k
 r |  j |  t d   YqV XqV Wd  S)Nr   r*   zno more images in FLI file)r9   _seekr3   rI   r?   )r@   frameZ
last_framefr   r   r   r?      s    	!zFliImageFile.seekc             C   s   | d k r4 d |  _  |  j j |  j  d |  _ n  | |  j  d k rZ t d |   n  | |  _  |  j |  _ |  j j |  j  |  j j d  } | s t  n  t	 |  } | |  _
 d d |  j |  j d  f g |  _ |  j | 7_ d  S)	Nr   r*   r   zcannot seek to frame %dr   Zflir+   )r   r   )r9   r:   r?   r<   r4   
ValueErrorr,   r-   rI   r1   Zdecodermaxblockr0   Ztile)r@   rN   rA   Z	framesizer   r   r   rM      s     				"zFliImageFile._seekc             C   s   |  j  S)N)r9   )r@   r   r   r   r;      s    zFliImageFile.tellN)__name__
__module____qualname__formatZformat_descriptionrC   r5   propertyrK   rL   r?   rM   r;   r   r   r   r   r   (   s   3r   z.fliz.flcN)ZPILr   r   r   r   __version__rD   Zi16ler   Zi32ler1   r%   r   r   Zregister_openrT   Zregister_extensionr   r   r   r   <module>   s   "				