U
    Å½„bU  ã                   @   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ddddg¡ 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	ksv| jd dksv| jd dksv|d
kr~tdƒ‚|dkr¬d| _|dkrœd| _qâ|dkrâd| _n6|dkr¼d| _n&|dkrÚd| _|dkrâd| _ntdƒ‚|d@ }|dk| _|dk�rd}n|dk�rd}ntdƒ‚|| jd< |d@ �r:d| jd < |�rR| 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@ �r@dd-| j | j  ¡ |||ffg| _n"d.d-| j | j  ¡ |d|ffg| _W n tk
�rz   Y nX 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)   ZpaletteÚMODESÚtellZtileÚKeyError)ÚselfÚsÚid_lenÚcolormaptypeÚ	imagetypeÚdepthÚflagsr!   Ústartr.   ZmapdepthÚrawmode© r?   ú6/tmp/pip-unpacked-wheel-_wxctax1/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)r6   r?   r?   r@   Úload_end™   s    zTgaImageFile.load_endN)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionrA   rC   r?   r?   r?   r@   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 n6 tk
rL } ztd| j› d�ƒ|‚W 5 d }~X Y nX d| jkrd| 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àd\}}}n
d\}}}| jdkrúd}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. )ÚSAVEr0   r5   ÚOSErrorZencoderinfoÚgetr2   ÚlenÚwarningsÚwarnÚwriter   Úo16r.   rB   Z
getpaletter   Ú_save)rB   r*   Úfilenamer>   Úbitsr9   r:   ÚerI   r#   r$   r8   ZcolormapfirstZcolormaplengthZcolormapentryr<   r!   r?   r?   r@   rU   ­   s„    &




ÿþýüûúùø	÷
öõÿ
  ÿ  ÿrU   z.tgaz.icbz.vdaz.vstzimage/x-tga)rQ   rJ   r   r   r   Ú_binaryr   r,   r   r   rT   r3   r   rM   rU   Zregister_openrG   Zregister_saveZregister_extensionsZregister_mimer?   r?   r?   r@   Ú<module>   s2   	øtú
K