a
    ¨º”h{  ã                   @  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ƒrˆG 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   ú@/var/www/auris/lib/python3.9/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¡S )N)ó   ×ÍÆš  ó      )Ú
startswith)r/   r   r   r   Ú_acceptF   s    r3   c                      sJ   e Zd ZdZdZddœdd„Zddœdd	„Zddddœ‡ fdd„Z‡  ZS )ÚWmfStubImageFileZWMFzWindows Metafiler   )r   c                 C  sö  | j  d¡}| d¡rÎt|dƒ}|dkr4d}t|ƒ‚||f| _t|dƒ}t|dƒ}t|dƒ}t|d	ƒ}d
| jd< || | jd  | || | jd  | f}||||f| jd< |dd… dkrÊd}t|ƒ‚n | d¡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< |
|f| _nd}t|ƒ‚d| _
|| _|  ¡ }|rò| | ¡ d S ) Né,   r0   é   r   zInvalid inché   é   é
   é   éH   Údpir   é   é   s    	 zUnsupported WMF file formatr1   é(   s    EMFé   é   é   é   é    é$   g     Ø£@é   r    r   zUnsupported file formatr   )r#   r(   r2   ÚwordÚ
ValueErrorÚ_inchÚshortr   ÚSyntaxErrorÚ_longr   Ú_sizeÚ_loadr   )r   ÚsZinchÚmsgÚx0Úy0Úx1Úy1r&   ÚframeZxdpiZydpiÚloaderr   r   r   Ú_openR   sP    







þ



$
zWmfStubImageFile._openr
   c                 C  s   t S )Nr   )r   r   r   r   rN   ™   s    zWmfStubImageFile._loadNz"float | tuple[float, float] | NonezImage.core.PixelAccess | None)r<   r   c                   s~   |d urt|| j d< | j d \}}}}t|tƒs6||f}t|| |d  | jd  ƒt|| |d  | jd  ƒf| _tƒ  ¡ S )Nr<   r   r   r   )r   Ú
isinstanceÚtupleÚintrI   rM   Úsuperr)   )r   r<   rQ   rR   rS   rT   ©Ú	__class__r   r   r)   œ   s    

þzWmfStubImageFile.load)N)	r*   r+   r,   ÚformatÚformat_descriptionrW   rN   r)   Ú__classcell__r   r   r\   r   r4   N   s   G ÿr4   r   z	IO[bytes]zstr | bytes)r   r#   Úfilenamer   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ÚOSErrorrb   )r   r#   ra   rP   r   r   r   Ú_save«   s    re   z.wmfz.emf)Ú
__future__r   Útypingr   Ú r   r   Ú_binaryr   rG   r   rJ   r	   rL   r   r   rc   r'   ZStubHandlerr   r3   ZStubImageFiler4   re   Zregister_openr^   Zregister_saveZregister_extensionsr   r   r   r   Ú<module>   s    

]