U
    ®&^¢  ã                   @   sb   d dl mZ d dlmZ d dlmZ dZdd„ ZG dd„ deƒZ	e 
e	je	e¡ e e	jd	¡ d
S )é   )ÚImage)Úi32le)ÚPcxImageFilei±hÞ:c                 C   s   t | ƒdkot| ƒtkS )Né   )ÚlenÚi32ÚMAGIC)Úprefix© r
   ú6/tmp/pip-install-a1j0c_p1/Pillow/PIL/DcxImagePlugin.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 )ÚDcxImageFileZDCXz	Intel DCXFc                 C   st   | j  d¡}t|ƒtkr tdƒ‚g | _tdƒD ](}t| j  d¡ƒ}|sJ qX| j |¡ q.| j | _d | _	|  
d¡ d S )Nr   znot a DCX filei   é    )ÚfpÚreadr   r   ÚSyntaxErrorÚ_offsetÚrangeÚappendÚ_DcxImageFile__fpÚframeÚseek)ÚselfÚsÚiÚoffsetr
   r
   r   Ú_open-   s    zDcxImageFile._openc                 C   s
   t | jƒS ©N©r   r   ©r   r
   r
   r   Ún_frames@   s    zDcxImageFile.n_framesc                 C   s   t | jƒdkS )Nr   r   r   r
   r
   r   Úis_animatedD   s    zDcxImageFile.is_animatedc                 C   s<   |   |¡sd S || _| j| _| j | j| ¡ t | ¡ d S r   )Z_seek_checkr   r   r   r   r   r   r   )r   r   r
   r
   r   r   H   s    
zDcxImageFile.seekc                 C   s   | j S r   )r   r   r
   r
   r   ÚtellP   s    zDcxImageFile.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__fpS   s    
zDcxImageFile._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.dcxN)Ú r   Ú_binaryr   r   ZPcxImagePluginr   r   r   r   Zregister_openr)   Zregister_extensionr
   r
   r
   r   Ú<module>   s   6