U
    ?hw                     @  s   d dl mZ d dlmZ 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
dddZeejdrG dd dejZee  dddddZG dd dejZdddd
dddZeejee eeje eejddg dS )     )annotations)IO   )Image	ImageFile)i16le)si16le)si32leNImageFile.StubHandler | NoneNone)handlerreturnc                 C  s   | a dS )z^
    Install application-specific WMF image handler.

    :param handler: Handler object.
    N_handler)r    r   D/var/www/html/venv/lib/python3.8/site-packages/PIL/WmfImagePlugin.pyregister_handler!   s    r   drawwmfc                   @  s,   e Zd ZdddddZdddddZd	S )

WmfHandlerzImageFile.StubImageFiler   )imr   c                 C  s   d|_ |jd | _d S )NRGBwmf_bbox)_modeinfobboxselfr   r   r   r   open/   s    zWmfHandler.openImage.Imagec              	   C  sL   |j d td|jtj|j  |j| jdd|jd d d d@ dS )Nr   r   rawZBGR   )	fpseekr   	frombytessizecorer   readr   r   r   r   r   load3   s    zWmfHandler.loadN)__name__
__module____qualname__r   r)   r   r   r   r   r   .   s   r   bytesbool)prefixr   c                 C  s    | d d dkp| d d dkS )N      ƚ           r   )r/   r   r   r   _acceptF   s    r4   c                      sB   e Zd ZdZdZddddZdddd	Zd fdd	Z  ZS )WmfStubImageFileZWMFzWindows Metafiler   )r   c                 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rd}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 )!NP   r0   r1         
      H   dpir         s    	 zUnsupported WMF file formatr2   r3   (   ,   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   _openT   sH    





$



$
zWmfStubImageFile._openr
   c                 C  s   t S )Nr   )r   r   r   r   rN      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 )Nr<   r   )rH   r   rM   superr)   )r   r<   rP   rQ   rR   rS   	__class__r   r   r)      s    
zWmfStubImageFile.load)N)	r*   r+   r,   formatformat_descriptionrW   rN   r)   __classcell__r   r   rY   r   r5   P   s
   Dr5   r   z	IO[bytes]zstr | bytes)r   r#   filenamer   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OSErrorr_   )r   r#   r^   rT   r   r   r   _save   s    rb   z.wmfz.emf)
__future__r   typingr    r   r   _binaryr   rI   r   rJ   r	   rL   r   r   r`   r'   ZStubHandlerr   r4   ZStubImageFiler5   rb   Zregister_openr[   Zregister_saveZregister_extensionsr   r   r   r   <module>   s    


V