B
    0\h                 @   s   d dl mZmZmZ d dlmZmZmZm	Z
 ddlZd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S )   )Image	ImageFileImagePalette)i8i16leo8o16le    Nz0.3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 )TgaImageFileZTGAZTargac             C   s  | j d}t|d }t|d }t|d }t|d }t|d }t|dd  t|dd  f| _|d	ks| jd dks| jd dks|d
krtd|dkrd| _|dkrd| _n|dkrd| _n6|dkrd| _n&|dkrd| _|dkrd| _ntd|d@ }|dkrd}n|s&d}ntd|| jd< |d@ rLd| jd< |rd| j || jd< |r&t|dd  t|d d  t|d!d    }}	}
|
dkrt	
d"d#| | j d|	  | _nZ|
d$krt	
d%d&| | j d|	  | _n,|
dkr&t	
d'd(| | j d)|	  | _ydt|d!@ |f }|d@ rfdd*| j | j  |||ffg| _n"d+d*| j | j  |d|ffg| _W n tk
r   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 mode0   zunknown TGA orientationorientationr   tga_rlecompression
id_sectionr         zBGR;16s     r   r   s      r   s          )r	   r	   raw)fpreadr   i16Z_sizesizeSyntaxErrormodeinfor   r)   ZpaletteMODEStellZtileKeyError)selfsid_lencolormaptype	imagetypeZdepthflagsr"   startr-   Zmapdepthrawmode r<   1lib/python3.7/site-packages/PIL/TgaImagePlugin.py_open5   sn    "



4
 
 



zTgaImageFile._openN)__name__
__module____qualname__formatZformat_descriptionr>   r<   r<   r<   r=   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  yt | j \}}}}W n" tk
r8   td| j Y nX d| jkrP| jd }n| jd| jd}|dk}|rz|d7 }| jd| jdd}	t|	}
|
dkrd}
|	d d }	t	d	 |rd
\}}}n
d\}}}| jdkrd}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 |rt| |dd| j d||ffg n$t| |dd| j d|d|ffg |
d d S )Nzcannot write mode %s 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	   r)   s           TRUEVISION-XFILE. )SAVEr/   r3   IOErrorZencoderinfogetr0   lenwarningswarnwriter   o16r-   imZ
getpaletter   _save)rO   r*   filenamer;   bitsr7   r8   rC   r$   r%   r6   ZcolormapfirstZcolormaplengthZcolormapentryr9   r"   r<   r<   r=   rP      sV    





b
 rP   z.tga)rD   r   r   r   Z_binaryr   r   r,   r   r   rN   rK   __version__r1   r   rG   rP   Zregister_openrB   Zregister_saveZregister_extensionr<   r<   r<   r=   <module>   s*   
\K