a
    ~'f                     @  s   d dl mZ d dlZd dlmZ ddlmZmZmZ ddl	m
Z ddl	mZ ddl	mZ d	d
ddddddZG dd dejZdddddddZddddddd Zeeje eeje eejg d! eejd" dS )#    )annotationsN)IO   )Image	ImageFileImagePalette)i16le)o8)o16leP1LLAzBGR;5BGRBGRA))r      )   r   )r   r   )r      )   r   )r      )r       c                   @  s0   e Zd ZdZdZddddZddddZd	S )
TgaImageFileZTGAZTargaNone)returnc                 C  s  | j d usJ | j d}|d }|d }|d }|d }|d }t|dt|df| _|d	vs| jd dks| jd dks|d
vrd}t||dv rd| _|dkrd| _n|dkrd| _nB|dv r|rdnd| _n*|dv rd| _|dkrd| _nd}t||d@ }|dv | _|dv r"d}n|dv r2d}nd}t||| jd< |d@ r\d| jd < |rt| j || jd!< |r0t|d"t|d#|d$   }	}
}|dkrt	
d%d&|	 | j d|
  | _nh|d'krt	
d(d)|	 | j d"|
  | _n:|dkr$t	
d*d+|	 | j d,|
  | _nd-}t|zdt|d$@ |f }|d@ rpdd.| j | j  |||ffg| _n"d/d.| j | j  |d|ffg| _W n ty   Y n0 d S )0N   r   r   r   r            )r   r   )r   r   r   r   r   znot a TGA file)r      r   r   r   )r   	   r   )r   
   RGBr   RGBAzunknown TGA mode0   )r   r#   )r   r#   )r   r   zunknown TGA orientationorientationr   tga_rlecompression
id_sectionr         zBGR;15s     r   r   s      r   s          zunknown TGA map depthr   r   raw)fpreadi16_sizesizeSyntaxError_mode_flip_horizontallyinfor   r-   paletteMODEStellZtileKeyError)selfsid_lencolormaptype	imagetypedepthflagsmsgr%   startr2   Zmapdepthrawmode rE   `/var/www/staging/api/virtual_environments/venv/lib/python3.9/site-packages/PIL/TgaImagePlugin.py_open5   s    





 




zTgaImageFile._openc                 C  s*   | j r&| jd usJ | jtjj| _d S )N)r5   imZ	transposer   Z	TransposeZFLIP_LEFT_RIGHT)r;   rE   rE   rF   load_end   s    zTgaImageFile.load_endN)__name__
__module____qualname__formatformat_descriptionrG   rI   rE   rE   rE   rF   r   1   s   kr   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   r!   r"   zImage.Imagez	IO[bytes]strr   )rH   r.   filenamer   c              
   C  sB  zt | j \}}}}W n< tyR } z$d| j d}t||W Y d }~n
d }~0 0 d| jv rj| jd }	n| jd| jd}
|
dk}	|	r|d7 }| jd| jdd}t|}|d	krd	}|d d	 }t	d
 |r| j
d usJ | j
dd}t|d d }}nd\}}| jdv r&d}nd}| jd| jdd}|dkrT|dB }|t|t| t| td t| t| td td t| jd  t| jd  t| t|  |r|| |r|| |	rt| |dd| j d||ffg n$t| |dd| j d|d|ffg |d d S )Nzcannot write mode z as TGArler'   r&   r   r(       z-id_section has been trimmed to 255 charactersr!   r   r   r   r,   )r   r"   r   r%   r$   r   r   r-   s           TRUEVISION-XFILE. )SAVEmoder:   OSErrorZencoderinfogetr6   lenwarningswarnrH   Z
getpalettewriter	   o16r2   r   _save)rH   r.   rP   rD   bitsr>   r?   erB   rQ   r'   r(   r=   r7   ZcolormaplengthZcolormapentryrA   r%   rE   rE   rF   r]      s     


	


r]   )z.tgaz.icbz.vdaz.vstzimage/x-tga)
__future__r   rY   typingr   rR   r   r   r   _binaryr   r0   r	   r
   r\   r8   r   rT   r]   Zregister_openrM   Zregister_saveZregister_extensionsZregister_mimerE   rE   rE   rF   <module>   s6   	{
M