3
齠h                 @   s   d dl mZmZ d dlmZ d dlmZ d dlmZ	 d dlm
Z dadd Zeejd	rpG d
d dZee  dd ZG dd dejZdd Zejejee ejeje ejejddg dS )   )Image	ImageFile)i16le)i32le)si16le)si32leNc             C   s   | a dS )z^
    Install application-specific WMF image handler.

    :param handler: Handler object.
    N)_handler)handler r
   4/tmp/pip-build-7iwl8md4/pillow/PIL/WmfImagePlugin.pyregister_handler   s    r   drawwmfc               @   s   e Zd Zdd Zdd ZdS )
WmfHandlerc             C   s   d|_ |jd | _d S )NRGBwmf_bbox)modeinfobbox)selfimr
   r
   r   open-   s    zWmfHandler.openc             C   sL   |j jd tjd|jtjj|j j |j| jdd|jd d d d@ d	S )
N    r   rawZBGR      r   )	fpseekr   	frombytessizecorer   readr   )r   r   r
   r
   r   load1   s    zWmfHandler.loadN)__name__
__module____qualname__r   r#   r
   r
   r
   r   r   ,   s   r   c             C   s    | d d dkp| d d dkS )N   s   ƚ  r   s      r
   )prefixr
   r
   r   _acceptD   s    r)   c                   s6   e Zd ZdZdZdd Zdd Zd
 fdd		Z  ZS )WmfStubImageFileZWMFzWindows Metafilec             C   s  d | _ | jjd}|d d dkrt|d| _ t|d}t|d}t|d}t|d}d| jd	< || | jd	  | j  || | jd	  | j  f}||||f| jd
< |dd dkrtdnt|dko|dd dkrt|d}t|d}t|d}t|d}t|dt|dt|dt|df}|| || f}d||  |d |d   }d||  |d |d   }	||||f| jd
< ||	kr|| jd	< n||	f| jd	< ntdd| _	|| _
| j }
|
r|
j|  d S )NP   r'   s   ƚ        
      H   dpir         s    	 zUnsupported WMF file formatr   (   ,   s    EMF                $   g     أ@   r   r   zUnsupported file formatr   )_inchr   r"   wordshortr   SyntaxErrordword_longr   _size_loadr   )r   sx0y0x1y1r    frameZxdpiZydpiloaderr
   r
   r   _openS   sB    









$
zWmfStubImageFile._openc             C   s   t S )N)r   )r   r
   r
   r   rD      s    zWmfStubImageFile._loadNc                sn   |d k	r`| j d k	r`|| jd< | jd \}}}}|| | jd  | j  || | jd  | j  f| _t j  d S )Nr1   r   )r=   r   rC   superr#   )r   r1   rF   rG   rH   rI   )	__class__r
   r   r#      s    
zWmfStubImageFile.load)N)	r$   r%   r&   formatformat_descriptionrL   rD   r#   __classcell__r
   r
   )rN   r   r*   N   s
   Cr*   c             C   s.   t d kstt d rtdt j| || d S )NsavezWMF save handler not installed)r   hasattrOSErrorrR   )r   r   filenamer
   r
   r   _save   s    rV   z.wmfz.emf) r   r   _binaryr   r>   r   rA   r   r?   r   rB   r   r   rS   r!   r   r)   ZStubImageFiler*   rV   Zregister_openrO   Zregister_saveZregister_extensionsr
   r
   r
   r   <module>   s   


V