o
    e                     @  s   d dl mZ d dl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 Zeeje eeje eejg d eejd dS )    )annotationsN   )Image	ImageFileImagePalette)i16le)o8)o16leP1LLAzBGR;5BGRBGRA))r      )   r   )r   r   )r      )   r   )r      )r       c                   @  s$   e Zd ZdZdZdd Zdd ZdS )TgaImageFileTGATargac                 C  s~  | 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rAd}t||dv rXd| _|dkrPd| _n%|dkrWd| _n|dv r`d| _n|dv rod| _|dkrnd| _nd}t||d@ }|dv | _|dv rd}n|dv rd}nd}t||| jd< |d@ rd| jd < |r| j || jd!< |rt|d"t|d#|d$ }	}
}|dkrt	
d%d&|	 | j d|
  | _n+|d'krt	
d(d)|	 | j d"|
  | _n|dkrt	
d*d+|	 | j d,|
  | _z5t|d$@ |f }|d@ r dd-| j | j  |||ffg| _W d S d.d-| j | j  |d|ffg| _W d S  ty>   Y d S w )/N   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          r   r   raw)fpreadi16_sizesizeSyntaxError_mode_flip_horizontallyinfor   r,   paletteMODEStelltileKeyError)selfsid_lencolormaptype	imagetypedepthflagsmsgr$   startr1   mapdepthrawmode rF   E/var/www/html/venv/lib/python3.10/site-packages/PIL/TgaImagePlugin.py_open4   s   


 
zTgaImageFile._openc                 C  s    | j r| jtjj| _d S d S )N)r4   im	transposer   	TransposeFLIP_LEFT_RIGHT)r;   rF   rF   rG   load_end   s   zTgaImageFile.load_endN)__name__
__module____qualname__formatformat_descriptionrH   rM   rF   rF   rF   rG   r   0   s
    fr   )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!   c              
   C  s  zt | j \}}}}W n ty# } zd| j d}t||d }~ww d| jv r/| jd }	n| jd| jd}
|
dk}	|	rD|d7 }| jd| jdd}t|}|d	kred	}|d d	 }t	d
 |rx| j
dd}t|d d}}nd\}}| jdv rd}nd}| jd| jdd}|dkr|dB }|t|t| t| td t| t| td td t| jd  t| jd  t| t|  |r|| |r|| |	rt| |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:   OSErrorencoderinfogetr5   lenwarningswarnrI   
getpalettewriter   o16r1   r   _save)rI   r-   filenamerE   bitsr>   r?   erB   rS   r&   r'   r=   r6   colormaplengthcolormapentryrA   r$   rF   rF   rG   ra      s   



	


ra   )z.tgaz.icbz.vdaz.vstzimage/x-tga)
__future__r   r\   rT   r   r   r   _binaryr   r/   r   r	   r`   r7   r   rV   ra   register_openrQ   register_saveregister_extensionsregister_mimerF   rF   rF   rG   <module>   s6   	u
L