U
    M»{jY
  ã                   @  s®   d dl mZ d dlZd dlmZ ddlmZmZ e d¡Z	ddd	œd
d„Z
G dd„ dejƒZdddddœdd„Ze ejee
¡ e eje¡ e ejd¡ e ejd¡ dS )é    )ÚannotationsN)ÚIOé   )ÚImageÚ	ImageFilesë   \s*#define[ \t]+.*_width[ \t]+(?P<width>[0-9]+)[\r\n]+#define[ 	]+.*_height[ 	]+(?P<height>[0-9]+)[
]+(?P<hotspot>#define[ 	]+[^_]*_x_hot[ 	]+(?P<xhot>[0-9]+)[
]+#define[ 	]+[^_]*_y_hot[ 	]+(?P<yhot>[0-9]+)[
]+)?[\000-\377]*_bits\[]ÚbytesÚbool)ÚprefixÚreturnc                 C  s   |   ¡ d d… dkS )Né   s   #define)Úlstrip)r	   © r   úQ/var/www/html/bwave/python/venv/lib/python3.8/site-packages/PIL/XbmImagePlugin.pyÚ_accept(   s    r   c                   @  s"   e Zd ZdZdZddœdd„ZdS )ÚXbmImageFileZXBMz
X11 BitmapÚNone)r
   c                 C  s¦   | j d k	st‚t | j  d¡¡}|s0d}t|ƒ‚t| d¡ƒ}t| d¡ƒ}| d¡rxt| d¡ƒt| d¡ƒf| jd< d| _	||f| _
d	d
| j | ¡ d fg| _d S )Ni   znot a XBM fileÚwidthÚheightÚhotspotZxhotZyhotÚ1Úxbm©r   r   )ÚfpÚAssertionErrorÚxbm_headÚmatchÚreadÚSyntaxErrorÚintÚgroupÚinfoÚ_modeÚ_sizeÚsizeÚendZtile)ÚselfÚmÚmsgZxsizeZysizer   r   r   Ú_open4   s    
"
zXbmImageFile._openN)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionr(   r   r   r   r   r   0   s   r   zImage.Imagez	IO[bytes]zstr | bytesr   )Úimr   Úfilenamer
   c                 C  sÚ   | j dkr d| j › d�}t|ƒ‚| d| jd › d� d¡¡ | d| jd	 › d� d¡¡ | j d
¡}|r¤| d|d › d� d¡¡ | d|d	 › d� d¡¡ | d¡ t | |dd| j dd fg¡ | d¡ d S )Nr   zcannot write mode z as XBMz#define im_width r   Ú
Úasciiz#define im_height r   r   z#define im_x_hot z#define im_y_hot s   static char im_bits[] = {
r   r   s   };
)	ÚmodeÚOSErrorÚwriter#   ÚencodeZencoderinfoÚgetr   Ú_save)r.   r   r/   r'   r   r   r   r   r7   I   s    

r7   z.xbmz	image/xbm)Ú
__future__r   ÚreÚtypingr   Ú r   r   Úcompiler   r   r   r7   Zregister_openr,   Zregister_saveZregister_extensionZregister_mimer   r   r   r   Ú<module>   s   ÿ