U
    &^p                     @   s   d dl Z ddlmZmZmZ ddlmZmZm	Z	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)i8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 )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)|	  | _zdt|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   i16_sizesizeSyntaxErrormodeinfor   r*   ZpaletteMODEStellZtileKeyError)selfsid_lencolormaptype	imagetypedepthflagsr"   startr/   Zmapdepthrawmode r?   6/tmp/pip-install-a1j0c_p1/Pillow/PIL/TgaImagePlugin.py_open3   s    "



4
 
 
 

zTgaImageFile._openN)__name__
__module____qualname__formatformat_descriptionrA   r?   r?   r?   r@   r   .   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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*   s           TRUEVISION-XFILE. )SAVEr1   r5   OSErrorZencoderinfogetr2   lenwarningswarnwriter   o16r/   imZ
getpaletter   _save)rS   r+   filenamer>   bitsr9   r:   rG   r$   r%   r8   ZcolormapfirstZcolormaplengthZcolormapentryr<   r"   r?   r?   r@   rT      s    




	

    rT   z.tgaz.icbz.vdaz.vstzimage/x-tga)rO   rH   r   r   r   _binaryr   r   r-   r   r	   rR   r3   r   rK   rT   Zregister_openrE   Zregister_saveZregister_extensionsZregister_mimer?   r?   r?   r@   <module>   s.   	o
K