o
    gQ                     @   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r2G 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
   P/home/ubuntu/cloudmapper/venv/lib/python3.10/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   rawBGR   )	fpseekr   	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 )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_d}t|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d}t|d | _|| _	| 
 }|r||  d S 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!   msgframexdpiydpiloaderr
   r
   r   _openQ   sL   




 



$zWmfStubImageFile._openc                 C   s   t S Nr   )r   r
   r
   r   rH      s   zWmfStubImageFile._loadNc                    sj   |d ur0| j d ur0|| jd< | jd \}}}}|| | jd  | j  || | jd  | j  f| _t  S )Nr6   r   )rB   r   rG   superr$   )r   r6   rJ   rK   rL   rM   	__class__r
   r   r$      s   

zWmfStubImageFile.loadrT   )	r%   r&   r'   formatformat_descriptionrS   rH   r$   __classcell__r
   r
   rV   r   r.   M   s    Dr.   c                 C   s0   t d u s	tt dsd}t|t | || d S )NsavezWMF save handler not installed)r   hasattrOSErrorr[   )r   r   filenamerN   r
   r
   r   _save   s   r_   z.wmfz.emf) r   r   _binaryr   rC   r   rD   r   rF   r   r   r\   r"   r   r-   StubImageFiler.   r_   register_openrX   register_saveregister_extensionsr
   r
   r
   r   <module>   s   


V