o
    
’×iW  ã                   @  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   úP/home/ubuntu/SoloSpeech/.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   |j d | _d S )NÚwmf_bbox)ÚinfoÚbbox©Úselfr   r   r   r   Úopen/   s   zWmfHandler.openúImage.Imagec              	   C  sZ   |j d usJ ‚|j  d¡ t d|jtj |j  ¡ |j| j¡dd|jd d d d@ d¡S )Nr   ÚRGBÚrawÚBGRé   éüÿÿÿéÿÿÿÿ)	ÚfpÚseekr   Ú	frombytesÚsizeÚcorer   Úreadr   r   r   r   r   Úload2   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¡S )N)ó   ×ÍÆš  ó      )Ú
startswith)r.   r   r   r   Ú_acceptF   s   
r4   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ä  | j d usJ ‚| j  d¡}| d¡rmt|dƒ}|dkr!d}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rld}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| _
|| _d S ) Né,   r1   é   r   zInvalid inché   é   é
   é   éH   Údpir   é   é   s    	 zUnsupported WMF file formatr2   é(   s    EMFé   é   é   é   é    é$   g     Ø£@é   r!   r   zUnsupported file formatr   )r$   r)   r3   ÚwordÚ
ValueErrorÚ_inchÚshortr   ÚSyntaxErrorÚ_longÚ_modeÚ_size)r   ÚsÚinchÚmsgÚx0Úy0Úx1Úy1r'   ÚframeÚxdpiÚydpir   r   r   Ú_openR   sN   







þþ



$
zWmfStubImageFile._openr   c                 C  s   t S ©Nr   )r   r   r   r   Ú_load–   s   zWmfStubImageFile._loadNr>   ú"float | tuple[float, float] | NoneúImage.core.PixelAccess | Nonec                   s~   |d ur:|| j d< | j d \}}}}t|tƒs||f}t|| |d  | jd  ƒt|| |d  | jd  ƒf| _tƒ  ¡ S )Nr>   r   r   r   )r   Ú
isinstanceÚtupleÚintrK   rP   Úsuperr*   )r   r>   rT   rU   rV   rW   ©Ú	__class__r   r   r*   ™   s   

þ
zWmfStubImageFile.load)r   r   )r   r   r\   )r>   r^   r   r_   )	r+   r,   r-   ÚformatÚformat_descriptionr[   r]   r*   Ú__classcell__r   r   rd   r   r5   N   s    

Dÿr5   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ÚOSErrorrl   )r   r$   rj   rS   r   r   r   Ú_save¨   s   ro   z.wmfz.emf)r
   r   r   r   )r.   r/   r   r0   )r   r   r$   ri   rj   rk   r   r   )Ú
__future__r   Útypingr   Ú r   r   Ú_binaryr   rI   r   rL   r	   rN   r   r   rm   r(   ÚStubHandlerr   r4   ÚStubImageFiler5   ro   Úregister_openrf   Úregister_saveÚregister_extensionsr   r   r   r   Ú<module>   s"   




Z