a
    i=icU                     @   s   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 )    N   )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 )TgaImageFileZTGAZTargac                 C   s~  | j d}|d }|d }|d }|d }|d }t|dt|df| _|d	vsv| jd dksv| jd dksv|d
vr~td|dv rd| _|dkrd| _q|dkrd| _n6|dv rd| _n&|dv rd| _|dkrd| _ntd|d@ }|dv | _|dv rd}n|dv rd}ntd|| jd< |d@ r:d| jd < |rR| j || jd!< |r t|d"t|d#|d$   }}	}
|
dkrt	
d%d&| | j d|	  | _nZ|
d'krt	
d(d)| | j d"|	  | _n,|
dkr t	
d*d+| | j d,|	  | _zdt|d$@ |f }|d@ r@dd-| j | j  |||ffg| _n"d.d-| j | j  |d|ffg| _W n tyx   Y n0 d S )/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tellZtileKeyError)selfsid_lencolormaptype	imagetypedepthflagsr!   startr.   Zmapdepthrawmode r@   c/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/PIL/TgaImagePlugin.py_open5   s    





 




zTgaImageFile._openc                 C   s   | j r| jtjj| _d S )N)r1   imZ	transposer   Z	TransposeZFLIP_LEFT_RIGHT)r7   r@   r@   rA   load_end   s    zTgaImageFile.load_endN)__name__
__module____qualname__formatformat_descriptionrB   rD   r@   r@   r@   rA   r   0   s   dr   )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 n8 tyN } z td| j d|W Y d }~n
d }~0 0 d| jv rf| 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
 |rd\}}}n
d\}}}| jdv rd}nd}| jd| jdd}|dkr*|dB }|
t|t| t| t| t| t| td td t| jd  t| jd  t| t|  |
r|
|
 |r|
| jdd |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 characters)r      r   )r   r   r   )r   r   r   r!   r    r   r   r   r   r(   r)   s           TRUEVISION-XFILE. )SAVEr0   r6   OSErrorZencoderinfogetr2   lenwarningswarnwriter   o16r.   rC   Z
getpaletter   _save)rC   r*   filenamer?   bitsr:   r;   erJ   r#   r$   r9   ZcolormapfirstZcolormaplengthZcolormapentryr=   r!   r@   r@   rA   rV      s|    *




	

rV   )z.tgaz.icbz.vdaz.vstzimage/x-tga)rR   rK   r   r   r   _binaryr   r,   r   r   rU   r4   r   rN   rV   Zregister_openrH   Zregister_saveZregister_extensionsZregister_mimer@   r@   r@   rA   <module>   s2   	t
K