o
    j                     @  s   d dl mZ d dl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	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$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)i32le)o8)o16leP1LLABGRA;15ZBGRBGRA))r      )   r   )r   r   )r      )   r   )r      )r       c                   @  s(   e Zd ZdZdZd
ddZd
ddZd	S )TgaImageFileZTGAZTargareturnNonec                 C  s  | j d usJ | j d}|d }|d }|d }|d }|d }t|dt|df| _|d	vsB| jd dksB| jd dksB|d
vrHd}t||dv r_d| _|dkrWd| _n(|dkr^d| _n |dv rk|rgdnd| _n|dv ry|dkrudnd| _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!< |rt|d"t|d#|d$ }	}
}|dkrt	
d%td|	 | j d|
  | _d| j_n7|dkrt	
d&td"|	 | j d"|
  | _n|d'krt	
d(td)|	 | j d)|
  | _nd*}t|z9t|d$@ |f }|d@ r?tdd+| j | j  |||fg| _W d S td,d+| j | j  |d|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   
   r   RGBRGBAzunknown TGA mode0   )r   r%   )r   r%   )r   r   zunknown TGA orientationorientationr   tga_rlecompression
id_sectionr         r   r   r   r      zunknown TGA map depthr   r   raw)fpreadi16_sizesizeSyntaxError_mode_flip_horizontallyinfor   r/   bytespalettemodeMODESr   _TiletellZtileKeyError)selfsid_lencolormaptype	imagetypedepthflagsmsgr'   startr4   Zmapdepthrawmode rJ   S/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/PIL/TgaImagePlugin.py_open7   s   


 



zTgaImageFile._openc                 C  s   | j dkr>| jd usJ | jdtj | jd}|dr>t|}|r>| j|d  | jd}|dkr>| j	dd	 | j
rL| jtjj| _d S d S )
Nr$   i   s   TRUEVISION-XFILE. i  r       r      )r;   r0   seekosSEEK_ENDr1   endswithi32imZfillbandr7   Z	transposer   Z	TransposeZFLIP_LEFT_RIGHT)r@   footerZextension_offsetZattributes_typerJ   rJ   rK   load_end   s   

zTgaImageFile.load_endN)r   r   )__name__
__module____qualname__formatformat_descriptionrL   rW   rJ   rJ   rJ   rK   r   3   s
    
jr   )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$   rU   Image.Imager0   	IO[bytes]filenamestr | bytesr   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| |tdd| j d||fg nt| |tdd| j d|d|fg |d d S )Nzcannot write mode z as TGArler)   r(   r   r*    rO   z-id_section has been trimmed to 255 charactersr#   r   r   r   r.   )r   r$   r   r'   r&   r   r   r/   s           TRUEVISION-XFILE. )SAVEr;   r?   OSErrorZencoderinfogetr8   lenwarningswarnrU   Z
getpalettewriter
   o16r4   r   _saver=   )rU   r0   r_   rI   bitsrC   rD   erG   ra   r)   r*   rB   r:   ZcolormaplengthZcolormapentryrF   r'   rJ   rJ   rK   rk      s   



	


rk   )z.tgaz.icbz.vdaz.vstzimage/x-tga)rU   r]   r0   r^   r_   r`   r   r   )
__future__r   rQ   rg   typingr   rb   r   r   r   _binaryr   r2   r	   rT   r
   r   rj   r<   r   rc   rk   Zregister_openr[   Zregister_saveZregister_extensionsZregister_mimerJ   rJ   rJ   rK   <module>   s>   	 

P