a
    ç´«jD  ã                   @  sä   d dl m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
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d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)Úo8)Úo16leÚPÚ1ÚLÚLAúBGRA;15ZÚBGRÚBGRA))r   é   )é   r   )r   r   )r   é   )é   r   )r   é   )r   é    c                   @  s0   e Zd ZdZdZddœdd„Zddœdd„Zd	S )
ÚTgaImageFileZTGAZTargaÚNone)Úreturnc                 C  sÈ  | j d usJ ‚| 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�d}t|ƒ‚|dv r¾d| _|dkr®d| _qþ|dkrþd| _n@|dv rÖ|rÎdnd| _n(|dv rò|dkrêdnd| _nd}t|ƒ‚|d@ }|dv | _|dv �r d}n|dv �r0d}nd}t|ƒ‚|| jd< |d@ �rZd| jd < |�rr| j  |¡| jd!< |�rBt|d"ƒt|d#ƒ|d$   }	}
}|dk�rÒt	 
d%td|	 ƒ| j  d|
 ¡ ¡| _d| j_np|dk�rt	 
d&td"|	 ƒ| j  d"|
 ¡ ¡| _n>|d'k�r6t	 
d(td)|	 ƒ| j  d)|
 ¡ ¡| _nd*}t|ƒ‚zlt|d$@ |f }|d@ �r†t dd+| j | j  ¡ |||f¡g| _n&t d,d+| j | j  ¡ |d|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   é
   r   ÚRGBÚRGBAzunknown TGA modeé0   )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&   Ústartr3   ZmapdepthÚrawmode© rI   úQ/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/PIL/TgaImagePlugin.pyÚ_open5   sž    ÿþýü





 
ÿ

ÿ
ÿ
üÿ
üÿ
zTgaImageFile._openc                 C  s   | j r| j tjj¡| _d S )N)r6   ÚimZ	transposer   Z	TransposeZFLIP_LEFT_RIGHT)r?   rI   rI   rJ   Úload_endŸ   s    zTgaImageFile.load_endN)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionrK   rM   rI   rI   rI   rJ   r   1   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#   zImage.Imagez	IO[bytes]zstr | bytesr   )rL   r/   Úfilenamer   c                 C  s:  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 | |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)   Ú éÿ   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Úgetr7   ÚlenÚwarningsÚwarnrL   Z
getpaletteÚwriter	   Úo16r3   r   Ú_saver<   )rL   r/   rS   rH   ÚbitsrB   rC   ÚerF   rT   r(   r)   rA   r9   ZcolormaplengthZcolormapentryrE   r&   rI   rI   rJ   r_   ³   sˆ     


ÿþýüûúùø	÷
öõÿ

ýýr_   )z.tgaz.icbz.vdaz.vstzimage/x-tga)Ú
__future__r   r[   Útypingr   rU   r   r   r   Ú_binaryr   r1   r	   r
   r^   r;   r   rW   r_   Zregister_openrQ   Zregister_saveZregister_extensionsZregister_mimerI   rI   rI   rJ   Ú<module>   s6   	øyú
P