o
    6>âg  ã                   @  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„ZeejdƒrAG dd„ dejƒZeeƒ ƒ d$dd„ZG dd„ dejƒZ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ÚhandlerúImageFile.StubHandler | NoneÚreturnÚNonec                 C  s   | a dS )z^
    Install application-specific WMF image handler.

    :param handler: Handler object.
    N©Ú_handler)r
   © r   úE/var/www/html/venv/lib/python3.10/site-packages/PIL/WmfImagePlugin.pyÚregister_handler!   s   r   Údrawwmfc                   @  s    e Zd Zddd„Zddd	„Zd
S )Ú
WmfHandlerÚimúImageFile.StubImageFiler   r   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   ÚrawÚBGRé   éüÿÿÿéÿÿÿÿ)	ÚfpÚseekr   Ú	frombytesÚsizeÚcorer   Úreadr   r   r   r   r   Úload3   s   ùzWmfHandler.loadN)r   r   r   r   )r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__r   r+   r   r   r   r   r   .   s    
r   ÚprefixÚbytesÚboolc                 C  s    | d d… dkp| d d… dkS )Né   ó   ×ÍÆš  é   ó      r   )r/   r   r   r   Ú_acceptF   s   ÿr6   c                      s<   e Zd ZdZdZddd„Zddd	„Zdd‡ fdd„Z‡  ZS )ÚWmfStubImageFileÚWMFzWindows Metafiler   r   c                 C  sö  d | _ | j d¡}|d d… dkrkt|dƒ| _ | j dkr"d}t|ƒ‚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rjd}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 d S )"NéP   r2   r3   é   r   zInvalid inché   é
   é   éH   Údpir   é   é   s    	 zUnsupported WMF file formatr4   r5   é(   é,   s    EMFé   é   é   é   é    é$   g     Ø£@é   r"   r   zUnsupported file formatr   )Ú_inchr%   r*   ÚwordÚ
ValueErrorÚshortr   ÚSyntaxErrorÚ_longr   Ú_sizeÚ_loadr   )r   ÚsÚmsgÚx0Úy0Úx1Úy1r(   ÚframeÚxdpiÚydpiÚloaderr   r   r   Ú_openT   sR   





þþ 



$ÿzWmfStubImageFile._openr   c                 C  s   t S ©Nr   )r   r   r   r   rR   ›   s   zWmfStubImageFile._loadNr?   ú
int | NoneúImage.core.PixelAccess | Nonec                   sj   |d ur0| j d ur0|| jd< | jd \}}}}|| | jd  | j  || | jd  | j  f| _tƒ  ¡ S )Nr?   r   )rK   r   rQ   Úsuperr+   )r   r?   rU   rV   rW   rX   ©Ú	__class__r   r   r+   ž   s   
þ
zWmfStubImageFile.load)r   r   )r   r   r^   )r?   r_   r   r`   )	r,   r-   r.   ÚformatÚformat_descriptionr]   rR   r+   Ú__classcell__r   r   rb   r   r7   P   s    

Gr7   r   r   r%   ú	IO[bytes]Úfilenameústr | bytesc                 C  s0   t d u s	tt dƒsd}t|ƒ‚t  | ||¡ d S )NÚsavezWMF save handler not installed)r   ÚhasattrÚOSErrorrj   )r   r%   rh   rT   r   r   r   Ú_save©   s   rm   z.wmfz.emf)r
   r   r   r   )r/   r0   r   r1   )r   r   r%   rg   rh   ri   r   r   )Ú
__future__r   Útypingr   Ú r   r   Ú_binaryr   rL   r   rN   r	   rP   r   r   rk   r)   ÚStubHandlerr   r6   ÚStubImageFiler7   rm   Úregister_openrd   Úregister_saveÚregister_extensionsr   r   r   r   Ú<module>   s"   





Y