o
    ]oiv  ã                   @  sÆ   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	„ Zeejd
ƒr8G 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 )é    )Úannotationsé   )Ú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   úZ/var/www/html/kuke-dev/django-kuke/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 )Nr   r   ÚrawZBGRé   éüÿÿÿéÿÿÿÿ)	ÚfpÚseekr   Ú	frombytesÚsizeÚcorer   Úreadr   r   r   r   r   Úload1   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   Ú_acceptD   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 )ÚWmfStubImageFileZ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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   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ÚframeZxdpiZydpiÚloaderr   r   r   Ú_openR   sL   




þþ 



$ÿzWmfStubImageFile._openc                 C  s   t S ©Nr	   )r   r   r   r   rG   –   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 )Nr5   r   )rA   r   rF   Úsuperr$   )r   r5   rI   rJ   rK   rL   ©Ú	__class__r   r   r$   ™   s   
þ
zWmfStubImageFile.loadrQ   )	r%   r&   r'   ÚformatÚformat_descriptionrP   rG   r$   Ú__classcell__r   r   rS   r   r.   N   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ÚOSErrorrX   )r   r   ÚfilenamerM   r   r   r   Ú_save¤   s   r\   z.wmfz.emf)Ú
__future__r   Ú r   r   Ú_binaryr   rB   r   rC   r   rE   r
   r   rY   r"   r   r-   ZStubImageFiler.   r\   Zregister_openrU   Zregister_saveZregister_extensionsr   r   r   r   Ú<module>   s    


V