o
    \"<f€  ã                   @   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S )ÚTgaImageFileÚTGAÚTargac                 C   sd  | 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r?tdƒ‚|dv rVd| _|dkrNd| _n#|dkrUd| _n|dv r^d| _n|dv rmd| _|dkrld| _ntdƒ‚|d@ }|dkr|d}n	|sd}ntdƒ‚|| jd< |d@ r“d| jd< |rž| j  |¡| jd< |rñt|dƒt|d ƒ|d! }}	}
|
dkrÆt 	d"d#| | j  d|	 ¡ ¡| _
n+|
d$krÜt 	d%d&| | j  d|	 ¡ ¡| _
n|
dkrñt 	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y1   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 modeé0   éÿÿÿÿ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Úinfor   r+   ÚpaletteÚMODESÚtellÚtileÚKeyError)ÚselfÚsÚid_lenÚcolormaptypeÚ	imagetypeÚdepthÚflagsr#   Ústartr0   ÚmapdepthÚrawmode© rC   úI/var/www/html/kck/venv/lib/python3.10/site-packages/PIL/TgaImagePlugin.pyÚ_open5   sŒ   €€

 ÿÿÿ
üÿüÿÿzTgaImageFile._openN)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionrE   rC   rC   rC   rD   r   0   s    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   r    c              
   C   s  zt | j \}}}}W n ty! } z
td| j› dƒ|‚d }~ww d| jv r-| jd }n| j d| j d¡¡}	|	dk}|rB|d7 }| j d| j dd¡¡}
t|
ƒ}|d	krcd	}|
d d	… }
t 	d
¡ |rkd\}}}nd\}}}| jdv rxd}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¡¡ |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 characters)r   é   r   )r   r   r   )r   r    r   r#   r"   r   r   r   r   r*   r+   s           TRUEVISION-XFILE. )ÚSAVEr2   r8   ÚOSErrorÚencoderinfoÚgetr3   ÚlenÚwarningsÚwarnÚwriter   Úo16r0   ÚimÚ
getpaletter   Ú_save)rX   r,   ÚfilenamerB   Úbitsr<   r=   ÚerK   r%   r&   r;   ÚcolormapfirstÚcolormaplengthÚcolormapentryr?   r#   rC   rC   rD   rZ   ¨   s€   €ÿ



ÿþýüûúùø	÷
öõÿ
ÿÿrZ   )z.tgaz.icbz.vdaz.vstzimage/x-tga)rT   rL   r   r   r   Ú_binaryr   r.   r   r   rW   r5   r   rO   rZ   Úregister_openrI   Úregister_saveÚregister_extensionsÚregister_mimerC   rC   rC   rD   Ú<module>   s4   	øoú
K