B
    ‚Þ1\s  ã               @   sd   d dl mZmZ dZdd„ Zdd„ ZG dd„ dejƒZe ej	e¡ e 
ej	d	¡ e ej	d
¡ dS )é   )ÚImageÚJpegImagePluginz0.1c             C   s
   t  | ¡S )N)r   Ú_accept)Úprefix© r   ú1lib/python3.7/site-packages/PIL/MpoImagePlugin.pyr      s    r   c             C   s   t  | ||¡S )N)r   Ú_save)ZimÚfpÚfilenamer   r   r   r      s    r   c               @   sX   e Zd 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 )ÚMpoImageFileZMPOzMPO (CIPA DC-007)Fc                sž   ˆ j  d¡ tj ˆ ¡ ˆ  ¡ ˆ _ˆ jd ˆ _‡ fdd„ˆ jd D ƒˆ _dˆ jd< ˆ jt	ˆ jƒksft
‚ˆ jd= ˆ j ˆ _ˆ j ˆ jd ¡ dˆ _dˆ _dˆ _d S )Né    i°  c                s   g | ]}|d  ˆ j d  ‘qS )Z
DataOffsetÚmpoffset)Úinfo)Ú.0Zmpent)Úselfr   r   ú
<listcomp>1   s   z&MpoImageFile._open.<locals>.<listcomp>i°  r   r   )r	   Úseekr   ÚJpegImageFileÚ_openZ_getmpZmpinfoÚ_MpoImageFile__framecountÚ_MpoImageFile__mpoffsetsÚlenÚAssertionErrorr   Ú_MpoImageFile__fpÚ_MpoImageFile__frameÚoffsetÚreadonly)r   r   )r   r   r   ,   s    


zMpoImageFile._openc             C   s   | j  |¡ d S )N)r   r   )r   Úposr   r   r   Ú	load_seek?   s    zMpoImageFile.load_seekc             C   s   | j S )N)r   )r   r   r   r   Ún_framesB   s    zMpoImageFile.n_framesc             C   s
   | j dkS )Nr   )r   )r   r   r   r   Úis_animatedF   s    zMpoImageFile.is_animatedc             C   sJ   |   |¡sd S | j| _| j| | _dd| j | j| jdffg| _|| _d S )NZjpeg)r   r   Ú )	Z_seek_checkr   r	   r   r   ÚsizeÚmodeZtiler   )r   Úframer   r   r   r   J   s    
zMpoImageFile.seekc             C   s   | j S )N)r   )r   r   r   r   ÚtellT   s    zMpoImageFile.tellc             C   sB   z4y| j | jkr| j  ¡  W n tk
r0   Y nX W d d | _ X d S )N)r   r	   ÚcloseÚAttributeError)r   r   r   r   Ú
_close__fpW   s    
zMpoImageFile._close__fpN)Ú__name__Ú
__module__Ú__qualname__ÚformatZformat_descriptionZ!_close_exclusive_fp_after_loadingr   r   Úpropertyr   r    r   r%   r(   r   r   r   r   r   &   s   
r   z.mpoz	image/mpoN)r!   r   r   Ú__version__r   r   r   r   Zregister_saver,   Zregister_extensionZregister_mimer   r   r   r   Ú<module>   s   B