
    1)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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    V/var/www/html/spbu.com/backend/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                ,    |j                   d   | _        y )Nwmf_bbox)infobboxselfims     r   openzWmfHandler.open/   s    
+DIr   c           	     `   |j                   J |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   RGBrawBGR   )	fpseekr   	frombytessizecorer   readr   r   s     r   loadzWmfHandler.load2   s    55$$$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   _acceptr8   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                   | j                   J | 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| _
        || _        y ) N,   r4      r   zInvalid inch      
      H   dpir         s    	 zUnsupported WMF file formatr5   (   s    EMF                $   g     أ@   r!   r   zUnsupported file formatr   )r$   r)   r6   word
ValueError_inchshortr   SyntaxError_long_mode_size)r   sinchmsgx0y0x1y1r'   framexdpiydpis               r   _openzWmfStubImageFile._openR   s=   ww"""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""

r   c                    t         S Nr   )r   s    r   _loadz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 )NrD   r   r   r   )r   
isinstancetupleintrQ   rV   superr*   )r   rD   rZ   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 | Nonerc   )rD   z"float | tuple[float, float] | Noner,   zImage.core.PixelAccess | None)	r/   r0   r1   formatformat_descriptionra   rd   r*   __classcell__)rj   s   @r   r:   r:   N   s9    F+BH 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OSErrorrp   )r   r$   filenamerY   s       r   _savert      s0    wx8.clMM"b(#r   z.wmfz.emf)r   rk   r,   r-   )r7   bytesr,   bool)r   r.   r$   z	IO[bytes]rs   zstr | bytesr,   r-   )
__future__r   typingr    r   r   _binaryr   rO   r	   rR   r
   rT   r   r   rq   r(   StubHandlerr   r8   StubImageFiler:   rt   register_openrl   register_saveregister_extensionsr2   r   r   <module>r      s   * #   " $ $ 5::y!Y** " Z\"QWy.. Wt$   $++-=w G   $++U 3   *11FF3C Dr   