U
    ڲg                     @  sp   d dl mZ ddlmZ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ImagePalette)i32bebytesbool)prefixreturnc                 C  s   t | dkot| dkS )N   ijY)leni32)r
    r   6/tmp/pip-unpacked-wheel-xela2va7/PIL/SunImagePlugin.py_accept   s    r   c                   @  s"   e Zd ZdZdZddddZdS )SunImageFileZSUNzSun Raster FileNone)r   c           
      C  s  | j d k	st| j d}t|s.d}t|d}t|dt|df| _t|d}t|d}t|d}t|d}|d	krd
\| _}n|dkrd\| _}np|dkrd | _}n\|dkr|dkrd\| _}n
d\| _}n4|dkr|dkrd\| _}n
d\| _}nd}t||rv|dkr$d}t||d	kr:d}t||| }t	d| j || _
| jdkrvd| _|dd}| jd | d d d }	|dkrdd| j |||	ffg| _n.|dkrdd| j ||fg| _nd }t|d S )!N    znot an SUN raster filer                  r   )1z1;I)LzL;4r      )RGBr   )r   ZBGR)r   ZRGBX)r   ZBGRXzUnsupported Mode/Bit Depthi   z Unsupported Color Palette LengthzUnsupported Palette TypezRGB;LPr            )r   r   r   r      raw)r   r   Zsun_rlez Unsupported Sun Raster file type)fpAssertionErrorreadr   SyntaxErrorr   _size_moder   r#   ZpalettemodereplacesizeZtile)
selfsmsgoffsetdepth	file_typeZpalette_typeZpalette_lengthrawmodeZstrider   r   r   _open$   s\    







zSunImageFile._openN)__name__
__module____qualname__formatformat_descriptionr4   r   r   r   r   r       s   r   z.rasN)
__future__r    r   r   r   _binaryr   r   r   r   Zregister_openr8   Zregister_extensionr   r   r   r   <module>   s   k