3
`¢JZÈ	  ã               @   s†   d dl Z ddlmZmZ dZe jdƒZdd„ ZG dd	„ d	ejƒZd
d„ Z	ej
ejeeƒ ejeje	ƒ ejejdƒ ejejdƒ dS )é    Né   )ÚImageÚ	ImageFilez0.6sì   \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\[\]c             C   s   | j ƒ d d… dkS )Né   s   #define)Úlstrip)Úprefix© r   ú4/usr/lib/python3/dist-packages/PIL/XbmImagePlugin.pyÚ_accept'   s    r
   c               @   s   e Zd ZdZdZdd„ ZdS )ÚXbmImageFileZXBMz
X11 Bitmapc             C   sŒ   t j| jjdƒƒ}|rˆt|jdƒƒ}t|jdƒƒ}|jdƒr^t|jdƒƒt|jdƒƒf| jd< d| _||f| _dd
| j |j	ƒ d fg| _
d S )Ni   ÚwidthZheightÚhotspotZxhotZyhotÚ1Úxbmr   )r   r   )Úxbm_headÚmatchÚfpÚreadÚintÚgroupÚinfoÚmodeÚsizeÚendZtile)ÚselfÚmZxsizeZysizer   r   r	   Ú_open3   s    
"
zXbmImageFile._openN)Ú__name__Ú
__module__Ú__qualname__ÚformatZformat_descriptionr   r   r   r   r	   r   .   s   r   c             C   sÂ   | j dkrtd| j  ƒ‚|jd| jd  jdƒƒ |jd| jd  jdƒƒ | jjdƒ}|rŒ|jd	|d  jdƒƒ |jd
|d  jdƒƒ |jdƒ tj| |dd| j dd fgƒ |jdƒ d S )Nr   zcannot write mode %s as XBMz#define im_width %d
r   Úasciiz#define im_height %d
r   r   z#define im_x_hot %d
z#define im_y_hot %d
s   static char im_bits[] = {
r   s   };
)r   r   )	r   ÚIOErrorÚwriter   ÚencodeZencoderinfoÚgetr   Ú_save)Zimr   Úfilenamer   r   r   r	   r&   G   s    

r&   z.xbmz	image/xbm)ÚreÚ r   r   Ú__version__Úcompiler   r
   r   r&   Zregister_openr    Zregister_saveZregister_extensionZregister_mimer   r   r   r	   Ú<module>   s   
