3

h                 @   sx   d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 dd Z
G dd dejZejejee
 ejejd	d
g dS )   )Image	ImageFileImagePalette)i16le)i32le)o8c             C   s   t | dkot| ddkS )N          )r
   r   )leni16)prefix r   R/var/www/html/enquirykeeper_venv/lib/python3.6/site-packages/PIL/FliImagePlugin.py_accept   s    r   c               @   sH   e Zd ZdZdZdZdd Zdd Zdd	 Zd
d Z	dd Z
dd ZdS )FliImageFileZFLIzAutodesk FLI/FLC AnimationFc             C   s  | j jd}t|o0t|ddko0|dd dks:tdt|d	| _| jd
k| _d| _t|dt|df| _t	|d}t|d}|dkr|d d }|| j
d< dd tdD }| j jd}d| _t|ddkr| jt	| | _| j jd}t|ddkrD| j jd	}t|ddkr(| j|d nt|ddkrD| j|d dd |D }tjddj|| _d| _| j | _| j j | _| jd d S ) N                   s     znot an FLI/FLC filer   r   P   
      r	   i  i  F   durationc             S   s   g | ]}|||fqS r   r   ).0ar   r   r   
<listcomp>F   s    z&FliImageFile._open.<locals>.<listcomp>   i   i        c             S   s*   g | ]"\}}}t |t | t | qS r   )r   )r   rgbr   r   r   r!   Y   s    ZRGB    )r   r   )fpreadr   r   SyntaxErrorZn_framesZis_animatedmode_sizei32inforange_FliImageFile__offset_paletter   rawjoinpalette_FliImageFile__frame_FliImageFile__fptell_FliImageFile__rewindseek)selfsr   magicr6   r   r   r   _open+   s@    


zFliImageFile._openc       
      C   s   d}xt t| jjdD ]}| jjd}||d  }|d }|dkrJd}| jj|d }xZt dt|dD ]F}|| |> }||d  |> }||d  |> }	|||	f||< |d7 }qlW qW d S )Nr   r$   r   r"   r   )r1   r   r*   r+   r   )
r<   r6   shiftier=   nr%   r&   r'   r   r   r   r3   b   s    zFliImageFile._palettec             C   sN   | j |sd S || jk r"| jd x&t| jd |d D ]}| j| q8W d S )Nr   r   )Z_seek_checkr7   _seekr1   )r<   framefr   r   r   r;   t   s    


zFliImageFile.seekc             C   s   |dkr$d| _ | jj| j d| _n| j  || j d krHtd| || _ | j| _| jj| j | jjd}|sxt	t
|}|| _dd| j | jd fg| _|  j|7  _d S )	Nr   r   r   zcannot seek to frame r	   Zflir)   )r   r   )r7   r8   r;   r:   r2   load
ValueErrorr*   r+   EOFErrorr/   ZdecodermaxblocksizeZtile)r<   rE   r=   Z	framesizer   r   r   rD   }   s"    zFliImageFile._seekc             C   s   | j S )N)r7   )r<   r   r   r   r9      s    zFliImageFile.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)r8   r*   closeAttributeError)r<   r   r   r   
_close__fp   s    
zFliImageFile._close__fpN)__name__
__module____qualname__formatformat_descriptionZ!_close_exclusive_fp_after_loadingr?   r3   r;   rD   r9   rM   r   r   r   r   r   %   s   7	r   z.fliz.flcN) r   r   r   _binaryr   r   r   r/   r   r   r   Zregister_openrQ   Zregister_extensionsr   r   r   r   <module>   s   	 