a
    ¥Q•hµ  ã                   @   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‚d}t|ƒ‚|dv r°d| _|dkr d| _qê|dkrêd| _n:|dv rÀd| _n*|dv rÞd| _|dkrêd| _nd}t|ƒ‚|d@ }|dv | _|dv �rd}n|dv �rd}nd}t|ƒ‚|| jd< |d@ �rFd| jd < |�r^| j  |¡| jd!< |�rt|d"ƒt|d#ƒ|d$   }	}
}|dk�r²t	 
d%d&|	 | j  d|
 ¡ ¡| _nZ|d'k�ràt	 
d(d)|	 | j  d"|
 ¡ ¡| _n,|dk�rt	 
d*d+|	 | j  d,|
 ¡ ¡| _zdt|d$@ |f }|d@ �rLdd-| j | j  ¡ |||ffg| _n"d.d-| j | j  ¡ |d|ffg| _W n t�y„   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 modeé0   )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!   Ústartr.   ZmapdepthÚrawmode© rB   úK/var/www/sistema_ama/venv/lib/python3.9/site-packages/PIL/TgaImagePlugin.pyÚ_open4   s–    ÿþýü





 
ÿ
ÿ
ÿ
üÿüÿ
zTgaImageFile._openc                 C   s   | j r| j tjj¡| _d S )N)r1   ÚimÚ	transposer   Ú	TransposeÚFLIP_LEFT_RIGHT)r8   rB   rB   rC   Úload_endš   s    zTgaImageFile.load_endN)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionrD   rI   rB   rB   rB   rC   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   s2  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rÖd	}|d d	… }t 	d
¡ |rü| j
 dd¡}t|ƒd d }}nd\}}| jdv �rd}nd}| j d| j dd¡¡}|dk�rD|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Úmoder7   ÚOSErrorÚencoderinfoÚgetr2   ÚlenÚwarningsÚwarnrE   Ú
getpaletteÚwriter   Úo16r.   r   Ú_save)rE   r*   ÚfilenamerA   Úbitsr;   r<   Úer?   rO   r#   r$   r:   r3   ZcolormaplengthZcolormapentryr>   r!   rB   rB   rC   r]   ®   s€     


ÿþýüûúùø	÷
öõÿ

ÿÿr]   )z.tgaz.icbz.vdaz.vstzimage/x-tga)rX   rP   r   r   r   Ú_binaryr   r,   r   r   r\   r4   r   rR   r]   Úregister_openrM   Úregister_saveÚregister_extensionsÚregister_mimerB   rB   rB   rC   Ú<module>   s2   	øuú
L