
    iW                       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Z eej        d          r& G d dej                  Z e e                       d!dZ G d dej                  Zd"dZ ej        ej        ee            ej        ej        e            ej        ej        ddg           dS )#    )annotations)IO   )Image	ImageFile)i16le)si16le)si32leNhandlerImageFile.StubHandler | NonereturnNonec                
    | a dS )z^
    Install application-specific WMF image handler.

    :param handler: Handler object.
    N_handler)r   s    Y/home/ubuntu/.hermes/hermes-agent/venv/lib/python3.11/site-packages/PIL/WmfImagePlugin.pyregister_handlerr   !   s     HHH    drawwmfc                      e Zd Zd	dZd
dZdS )
WmfHandlerimImageFile.StubImageFiler   r   c                *    |j         d         | _        d S )Nwmf_bbox)infobboxselfr   s     r   openzWmfHandler.open/   s    
+DIIIr   Image.Imagec           	     .   |j         J |j                             d           t          j        d|j        t          j                            |j                                         |j        | j                  dd|j        d         dz  dz   dz  d          S )Nr   RGBrawBGR   )	fpseekr   	frombytessizecorer   readr   r   s     r   loadzWmfHandler.load2   s    5$$$EJJqMMM?
""25::<<$)DDa!#r)  r   N)r   r   r   r   )r   r   r   r!   )__name__
__module____qualname__r    r/    r   r   r   r   .   s<        	, 	, 	, 	,	 	 	 	 	 	r   r   prefixbytesboolc                ,    |                      d          S )N)   ƚ        )
startswith)r4   s    r   _acceptr;   F   s    OPPPr   c                  <     e Zd ZdZdZddZddZ	 dd fdZ xZS )WmfStubImageFileWMFzWindows Metafiler   r   c                   | j         J | j                             d          }|                    d          rt          |d          }|dk    rd}t	          |          ||f| _        t          |d          }t          |d          }t          |d          }t          |d	          }d
| j        d<   ||z
  | j        d         z  |z  ||z
  | j        d         z  |z  f}||||f| j        d<   |dd         dk    rd}t          |          n%|                    d          r|dd         dk    rt          |d          }t          |d	          }t          |d          }t          |d          }t          |d          t          |d          t          |d          t          |d          f}	||z
  ||z
  f}d||z
  z  |	d         |	d         z
  z  }
d||z
  z  |	d         |	d         z
  z  }||||f| j        d<   |
|k    r|
| j        d<   n|
|f| j        d<   |
|f| _        nd}t          |          d| _
        || _        d S ) N,   r8      r   zInvalid inch      
      H   dpir         s    	 zUnsupported WMF file formatr9   (   s    EMF                $   g     أ@   r&   r   zUnsupported file formatr#   )r)   r.   r:   word
ValueError_inchshortr   SyntaxError_long_mode_size)r   sinchmsgx0y0x1y1r,   framexdpiydpis               r   _openzWmfStubImageFile._openR   s~   w"""GLL<<344 :	# 2;;Dqyy$ oo%.2DjDJ q!Bq!Bq"Bq"B  "DIebDIe,,4bDIe,,4D
 %'BNDIj! Bx,,,3!#&&& - \\-.. 	#1RU8w3F3F q!Bq"Bq"Bq"B !RLL%2,,aeArllJE7BG#D R"W%qE!H)<=DR"W%qE!H)<=D$&BNDIj!t||#'	%  #':	% tDJJ ,Cc"""



r   r   c                    t           S Nr   )r   s    r   _loadzWmfStubImageFile._load   s    r   NrG   "float | tuple[float, float] | NoneImage.core.PixelAccess | Nonec                `   ||| j         d<   | j         d         \  }}}}t          |t                    s||f}t          ||z
  |d         z  | j        d         z            t          ||z
  |d         z  | j        d         z            f| _        t                                                      S )NrG   r   r   r   )r   
isinstancetupleintrT   rY   superr/   )r   rG   r]   r^   r_   r`   	__class__s         r   r/   zWmfStubImageFile.load   s     ?"DIe!Yz2NBBc5)) 3hR"WA&A677R"WA&A677DJ ww||~~r   )r   r   )r   r   rf   )rG   rh   r   ri   )	r0   r1   r2   formatformat_descriptionrd   rg   r/   __classcell__)ro   s   @r   r=   r=   N   s        F+B B B BH    9=          r   r=   r   r!   r)   	IO[bytes]filenamestr | bytesc                    t           t          t           d          sd}t          |          t                               | ||           d S )NsavezWMF save handler not installed)r   hasattrOSErrorrw   )r   r)   rt   r\   s       r   _saverz      sD    wx88.cllMM"b(#####r   z.wmfz.emf)r   r   r   r   )r4   r5   r   r6   )r   r!   r)   rs   rt   ru   r   r   )
__future__r   typingr    r   r   _binaryr   rR   r	   rU   r
   rW   r   r   rx   r-   StubHandlerr   r;   StubImageFiler=   rz   register_openrp   register_saveregister_extensionsr3   r   r   <module>r      s  * # " " " " "               " " " " " " $ $ $ $ $ $ $ $ $ $ $ $    75:y!! #    Y*   " ZZ\\"""Q Q Q QW W W W Wy. W W Wt$ $ $ $  $+-=w G G G  $+U 3 3 3  *1FF3C D D D D Dr   