U
    ॡc                     @   s   d dl mZ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rdG d	d
 d
Zee  dd ZG dd dejZdd Zeejee eeje eejddg dS )   )Image	ImageFile)i16le)si16le)si32leNc                 C   s   | a dS )z^
    Install application-specific WMF image handler.

    :param handler: Handler object.
    N_handler)handler r
   6/tmp/pip-unpacked-wheel-h_ukwjmx/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 d td|jtj|j  |j| jdd|jd d d d@ dS )N    r   rawZBGR   )	fpseekr   Z	frombytessizecorer   readr   r   r
   r
   r   load0   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      ƚ           r
   )prefixr
   r
   r   _acceptC   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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n|d d dkr|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 | _|| _	| 
 }
|
r|
|  d S )!NP   r&   r'         
      H   dpir         s    	 zUnsupported WMF file formatr(   r)   (   ,   s    EMF                $   g     أ@   r   r   r   zUnsupported file formatr   )_inchr   r!   wordshortr   SyntaxError_longr   _size_loadr   )r   sx0y0x1y1r   frameZxdpiZydpiloaderr
   r
   r   _openR   sD    





$



$
zWmfStubImageFile._openc                 C   s   t S )Nr   )r   r
   r
   r   rE      s    zWmfStubImageFile._loadNc                    sj   |d k	r`| j d k	r`|| jd< | jd \}}}}|| | jd  | j  || | jd  | j  f| _t  S )Nr3   r   )r?   r   rD   superr"   )r   r3   rG   rH   rI   rJ   	__class__r
   r   r"      s    
zWmfStubImageFile.load)N)	r#   r$   r%   formatformat_descriptionrM   rE   r"   __classcell__r
   r
   rO   r   r,   M   s
   Cr,   c                 C   s,   t d kstt dstdt | || d S )NsavezWMF save handler not installed)r   hasattrOSErrorrT   )r   r   filenamer
   r
   r   _save   s    rX   z.wmfz.emf) r   r   _binaryr   r@   r   rA   r   rC   r   r   rU   r    r   r+   ZStubImageFiler,   rX   Zregister_openrQ   Zregister_saveZregister_extensionsr
   r
   r
   r   <module>   s   


V