U
    1èÝcS  ã                   @   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)Zhandler© r	   ú1lib/python3.8/site-packages/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rÀt|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r¾d}t|ƒ‚nü|d d… dkr°|dd… dkr°t|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d}t|ƒ‚d | _|| _	|  
¡ }|rà| | ¡ d S )!NéP   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   ÚmsgÚframeZxdpiZydpiÚloaderr	   r	   r
   Ú_openR   sH    




þ
$



$
zWmfStubImageFile._openc                 C   s   t S )Nr   )r   r	   r	   r
   rD   —   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 )Nr2   r   )r>   r   rC   Úsuperr!   )r   r2   rF   rG   rH   rI   ©Ú	__class__r	   r
   r!   š   s    
þzWmfStubImageFile.load)N)	r"   r#   r$   ÚformatZformat_descriptionrM   rD   r!   Ú__classcell__r	   r	   rO   r
   r+   M   s
   Er+   c                 C   s0   t d kstt dƒsd}t|ƒ‚t  | ||¡ d S )NÚsavezWMF save handler not installed)r   ÚhasattrÚOSErrorrS   )r   r   ÚfilenamerJ   r	   r	   r
   Ú_save¥   s    rW   z.wmfz.emf)Ú r   r   Z_binaryr   r?   r   r@   r   rB   r   r   rT   r   r   r*   ZStubImageFiler+   rW   Zregister_openrQ   Zregister_saveZregister_extensionsr	   r	   r	   r
   Ú<module>   s   


X