U
    ®&^S
  ã                   @   sT   d dl Z ddlmZmZ dd„ ZG dd„ dejƒZe ejee¡ e 	ejd¡ dS )	é    Né   )ÚImageÚTiffImagePluginc                 C   s   | d d… t jkS )Né   )ÚolefileÚMAGIC)Úprefix© r	   ú6/tmp/pip-install-a1j0c_p1/Pillow/PIL/MicImagePlugin.pyÚ_accept   s    r   c                   @   sP   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d„ ZdS )ÚMicImageFileZMICzMicrosoft Image ComposerFc                 C   s¾   zt  | j¡| _W n tk
r.   tdƒ‚Y nX g | _| j ¡ D ]<}|dd … r@|d dd … dkr@|d dkr@| j |¡ q@| jsŒtdƒ‚| j| _	d | _
t| jƒdkr°tj| _|  d¡ d S )Nz!not an MIC file; invalid OLE filer   r   éüÿÿÿz.ACIr   z!not an MIC file; no image entries)r   Z	OleFileIOÚfpÚoleÚOSErrorÚSyntaxErrorÚimagesÚlistdirÚappendÚ_MicImageFile__fpÚframeÚlenr   Z	CONTAINERÚcategoryÚseek)ÚselfÚpathr	   r	   r
   Ú_open*   s    ,zMicImageFile._openc                 C   s
   t | jƒS ©N©r   r   ©r   r	   r	   r
   Ún_framesI   s    zMicImageFile.n_framesc                 C   s   t | jƒdkS )Nr   r   r   r	   r	   r
   Úis_animatedM   s    zMicImageFile.is_animatedc                 C   s^   |   |¡sd S z| j| }W n tk
r8   tdƒ‚Y nX | j |¡| _tj 	| ¡ || _
d S )Nzno such frame)Z_seek_checkr   Ú
IndexErrorÚEOFErrorr   Z
openstreamr   r   ÚTiffImageFiler   r   )r   r   Úfilenamer	   r	   r
   r   Q   s    
zMicImageFile.seekc                 C   s   | j S r   )r   r   r	   r	   r
   Útell_   s    zMicImageFile.tellc                 C   sB   z4z| j | jkr| j  ¡  W n tk
r0   Y nX W 5 d | _ X d S r   )r   r   ÚcloseÚAttributeErrorr   r	   r	   r
   Ú
_close__fpb   s    
zMicImageFile._close__fpN)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionZ!_close_exclusive_fp_after_loadingr   Úpropertyr    r!   r   r&   r)   r	   r	   r	   r
   r   $   s   

r   z.mic)
r   Ú r   r   r   r$   r   Zregister_openr-   Zregister_extensionr	   r	   r	   r
   Ú<module>   s
   K