U
    ڲg                     @  sl   d dl mZ ddlmZmZ ddlmZ ddddd	ZG d
d dejZ	e
e	je	e ee	jd dS )    )annotations   )Image	ImageFile)i32bebytesbool)prefixreturnc                 C  s(   t | dko&t| ddko&t| ddkS )N   r         r      )leni32)r	    r   6/tmp/pip-unpacked-wheel-xela2va7/PIL/GbrImagePlugin.py_accept    s    r   c                   @  s*   e Zd ZdZdZddddZdd Zd	S )
GbrImageFileZGBRzGIMP brush fileNone)r
   c           
      C  sb  t | jd}|dk r$d}t|t | jd}|dkrNd| }t|t | jd}t | jd}t | jd}|dks|dkrd}t||dkrd| }t||d	kr|d }n>|d
 }| jd}|dkrd}t|t | jd| jd< | j|d d }	|d	kr*d| _nd| _||f| _|	| jd< t| j	 || | | _
d S )Nr   r   znot a GIMP brushr   z Unsupported GIMP brush version: r   )r   r   z$Unsupported GIMP brush color depth: r      s   GIMPz"not a GIMP brush, bad magic numberspacingLZRGBAcomment)r   fpreadSyntaxErrorinfo_mode_sizer   Z_decompression_bomb_checksize
_data_size)
selfheader_sizemsgversionwidthheightZcolor_depthZcomment_lengthZmagic_numberr   r   r   r   _open,   sB    





zGbrImageFile._openc                 C  s:   | j s.tj| j| j| _ | | j| j	 tj
| S )N)Zimr   corenewmoder"   Z	frombytesr   r   r#   load)r$   r   r   r   r.   [   s    zGbrImageFile.loadN)__name__
__module____qualname__formatformat_descriptionr*   r.   r   r   r   r   r   (   s   /r   z.gbrN)
__future__r    r   r   _binaryr   r   r   r   Zregister_openr2   Zregister_extensionr   r   r   r   <module>   s   >