o
    _#ûa  ã                   @   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	ƒr8G 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)Úi32le)Úsi16le)Úsi32leNc                 C   s   | a dS )z^
    Install application-specific WMF image handler.

    :param handler: Handler object.
    N©Ú_handler)Úhandler© r   ú4/usr/lib/python3/dist-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   ÚrawÚBGRé   éüÿÿÿéÿÿÿÿ)	ÚfpÚseekr   Ú	frombytesÚsizeÚcorer   Úreadr   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   )Ú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 )ÚWmfStubImageFileÚ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]tdƒ‚nwt|ƒ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tdƒ‚d| _	|| _
|  ¡ }
|
rè|
 | ¡ d S d S )NéP   r)   r*   é   é   é
   é   é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"   ÚframeÚxdpiÚydpiÚloaderr   r   r   Ú_openS   sH   




þÿ



$ÿzWmfStubImageFile._openc                 C   s   t S ©Nr   )r   r   r   r   rI   –   s   zWmfStubImageFile._loadNc                    sn   |d ur0| j d ur0|| jd< | jd \}}}}|| | jd  | j  || | jd  | j  f| _tƒ  ¡  d S )Nr6   r   )rB   r   rH   Úsuperr%   )r   r6   rK   rL   rM   rN   ©Ú	__class__r   r   r%   ™   s   
þzWmfStubImageFile.loadrT   )	r&   r'   r(   ÚformatÚformat_descriptionrS   rI   r%   Ú__classcell__r   r   rV   r   r.   N   s    Cr.   c                 C   s,   t d u s	tt dƒstdƒ‚t  | ||¡ d S )NÚsavezWMF save handler not installed)r	   ÚhasattrÚOSErrorr[   )r   r   Úfilenamer   r   r   Ú_save¤   s   r_   z.wmfz.emf)Ú r   r   Ú_binaryr   rC   r   rF   r   rD   r   rG   r	   r   r\   r#   r   r-   ÚStubImageFiler.   r_   Úregister_openrX   Úregister_saveÚregister_extensionsr   r   r   r   Ú<module>   s    


V