
    Bwg                       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    I/var/www/horilla/myenv/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                &    | d d dk(  xs | d d dk(  S )N      ƚ           r3   )prefixs    r   _acceptr:   F   s'    r
11VVBQZCV5Vr   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 Metafilec                :   d | _         | j                  j                  d      }|d d dk(  rt        |d      | _         | j                   dk(  rd}t	        |      t        |d      }t        |d      }t        |d      }t        |d	      }d
| j                  d<   ||z
  | j                  d   z  | j                   z  ||z
  | j                  d   z  | j                   z  f}||||f| j                  d<   |dd dk7  rd}t        |      |d d dk(  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<   nd }t        |      d!| _	        || _
        | j                         }|r|j                  |        y y )"NP   r5   r6      r   zInvalid inch   
      H   dpir         s    	 zUnsupported WMF file formatr7   r8   (   ,   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loaders               r   _openzWmfStubImageFile._openT   sQ   
 GGLLRa5// aDJzzQ$ o% q!Bq!Bq"Bq"B  "DIIebDIIe,,

:bDIIe,,

:D
 %'BNDIIj! Bx,,3!#&&rU))a2h'.A 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|#'		% #':		%  ,Cc""

KK r   c                    t         S Nr   )r   s    r   rX   zWmfStubImageFile._load   s    r   c                   |x| j                   l|| j                  d<   | j                  d   \  }}}}||z
  | j                  d   z  | j                   z  ||z
  | j                  d   z  | j                   z  f| _        t        |          S )NrE   r   )rQ   r   rW   superr+   )r   rE   r[   r\   r]   r^   	__class__s         r   r+   zWmfStubImageFile.load   s    ?tzz5"DIIe!YYz2NBBbDIIe,,

:bDIIe,,

:DJ w|~r   )r-   r.   )r-   ImageFile.StubHandler | Nonere   )rE   z
int | Noner-   zImage.core.PixelAccess | None)	r0   r1   r2   formatformat_descriptionrc   rX   r+   __classcell__)rh   s   @r   r<   r<   P   s$    F+EN r   r<   c                x    t         t        t         d      sd}t        |      t         j                  | ||       y )NsavezWMF save handler not installed)r   hasattrOSErrorrn   )r   r%   filenamerZ   s       r   _saverr      s0    wx8.clMM"b(#r   z.wmfz.emf)r   ri   r-   r.   )r9   bytesr-   bool)r   r/   r%   z	IO[bytes]rq   zstr | bytesr-   r.   )
__future__r   typingr    r   r   _binaryr   rR   r	   rT   r
   rV   r   r   ro   r)   StubHandlerr   r:   StubImageFiler<   rr   register_openrj   register_saveregister_extensionsr3   r   r   <module>r~      s   * #   " $ $ 5::y!Y** " Z\"Vy.. Vr$   $++-=w G   $++U 3   *11FF3C Dr   