
    :h{                       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j0                  ej2                  ee        ej4                  ej2                  e        ej6                  ej2                  ddg       y)    )annotations)IO   )Image	ImageFile)i16le)si16le)si32leNc                    | a y)z^
    Install application-specific WMF image handler.

    :param handler: Handler object.
    N_handler)handlers    P/var/www/urcfiles/bundle/venv/lib/python3.12/site-packages/PIL/WmfImagePlugin.pyregister_handlerr   !   s	     H    drawwmfc                      e Zd ZddZddZy)
WmfHandlerc                :    d|_         |j                  d   | _        y )NRGBwmf_bbox)_modeinfobboxselfims     r   openzWmfHandler.open/   s    BH
+DIr   c           	     D   |j                   j                  d       t        j                  d|j                  t        j
                  j                  |j                   j                         |j                  | j                        dd|j                  d   dz  dz   dz  d      S )Nr   r   rawBGR   )	fpseekr   	frombytessizecorer   readr   r   s     r   loadzWmfHandler.load3   sv    EEJJqM??

""255::<$))Da!#r) r   N)r   ImageFile.StubImageFilereturnNone)r   r,   r-   Image.Image)__name__
__module____qualname__r   r+    r   r   r   r   .   s    	,
	r   r   c                $    | j                  d      S )N)   ƚ        )
startswith)prefixs    r   _acceptr9   F   s    OPPr   c                  B     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 Metafilec                0   | j                   j                  d      }|j                  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k7  rd}t        |      |j                  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 | _
        || _        | j                         }|r|j                  |        y y )!NP   r5      r   zInvalid inch      
      H   dpir         s    	 zUnsupported WMF file formatr6   (   ,   s    EMF                $   g     أ@   r"   r   zUnsupported file formatr   )r%   r*   r7   word
ValueError_inchshortr   SyntaxError_longr   _size_loadr   )r   sinchmsgx0y0x1y1r(   framexdpiydpiloaders                r   _openzWmfStubImageFile._openR   sL   GGLL<<34 2;Dqy$ o%.2DjDJ q!Bq!Bq"Bq"B  "DIIebDIIe,,4bDIIe,,4D
 %'BNDIIj! Bx,,3!#&&\\-.1R8w3F q!Bq"Bq"Bq"B !RL%2,aeArlJE7BG#D R"W%qE!H)<=DR"W%qE!H)<=D$&BNDIIj!t|#'		% #':		% tDJ ,Cc""

KK r   c                    t         S Nr   )r   s    r   rX   zWmfStubImageFile._load   s    r   c                ,   ||| 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 )NrE   r   r   r   )r   
isinstancetupleintrS   rW   superr+   )r   rE   r\   r]   r^   r_   	__class__s         r   r+   zWmfStubImageFile.load   s     ?"DIIe!YYz2NBBc5)3hR"WA&A67R"WA&A67DJ w|~r   )r-   r.   )r-   ImageFile.StubHandler | Nonerf   )rE   z"float | tuple[float, float] | Noner-   zImage.core.PixelAccess | None)	r0   r1   r2   formatformat_descriptionrd   rX   r+   __classcell__)rl   s   @r   r;   r;   N   s9    F+EN 9=5	& r   r;   c                x    t         t        t         d      sd}t        |      t         j                  | ||       y )NsavezWMF save handler not installed)r   hasattrOSErrorrr   )r   r%   filenamer[   s       r   _saverv      s0    wx8.clMM"b(#r   z.wmfz.emf)r   rm   r-   r.   )r8   bytesr-   bool)r   r/   r%   z	IO[bytes]ru   zstr | bytesr-   r.   )
__future__r   typingr    r   r   _binaryr   rQ   r	   rT   r
   rV   r   r   rs   r)   StubHandlerr   r9   StubImageFiler;   rv   register_openrn   register_saveregister_extensionsr3   r   r   <module>r      s   * #   " $ $ 5::y!Y** " Z\"QZy.. Zz$   $++-=w G   $++U 3   *11FF3C Dr   