
    ev                       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 Z eej                  d	      r G d
 d      Z e e              d Z G d dej$                        Zd Z ej*                  ej,                  ee        ej.                  ej,                  e        ej0                  ej,                  ddg       y)    )annotations   )Image	ImageFile)i16le)si16le)si32leNc                    | a y)z^
    Install application-specific WMF image handler.

    :param handler: Handler object.
    N_handler)handlers    4/usr/lib/python3/dist-packages/PIL/WmfImagePlugin.pyregister_handlerr      s	     H    drawwmfc                      e Zd Zd Z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.load1   sv    EEJJqM??

""255::<$))Da!#r) r   N)__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      ƚ           r.   )prefixs    r   _acceptr5   D   s'    r
11VVBQZCV5Vr   c                  4     e Zd ZdZdZd Zd Zd fd	Z xZS )WmfStubImageFileWMFzWindows Metafilec                   d | _         | j                  j                  d      }|d d dk(  rt        |d      | _         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   r0   r1         
      H   dpir         s    	 zUnsupported WMF file formatr2   r3   (   ,   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framexdpiydpiloaders               r   _openzWmfStubImageFile._openR   s7   
 GGLLRa5// aDJ 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   rR   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 )Nr@   r   )rL   r   rQ   superr*   )r   r@   rT   rU   rV   rW   	__class__s         r   r*   zWmfStubImageFile.load   s    ?tzz5"DIIe!YYz2NBBbDIIe,,

:bDIIe,,

:DJ w|~r   r_   )	r+   r,   r-   formatformat_descriptionr]   rR   r*   __classcell__)rb   s   @r   r7   r7   N   s$    F+BH r   r7   c                x    t         t        t         d      sd}t        |      t         j                  | ||       y )NsavezWMF save handler not installed)r   hasattrOSErrorrg   )r   r$   filenamerX   s       r   _saverk      s0    wx8.clMM"b(#r   z.wmfz.emf)
__future__r    r   r   _binaryr   rM   r   rN   r	   rP   r   r   rh   r(   r   r5   StubImageFiler7   rk   register_openrc   register_saveregister_extensionsr.   r   r   <module>rs      s   * #  " $ $ 5::y! " Z\"Sy.. Sl$   $++-=w G   $++U 3   *11FF3C Dr   