B
    -a                 @   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S )TgaImageFileZTGAZTargac             C   sp  | 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rd| _|dkrd| _q|dkrd| _n6|dkrd| _n&|dkrd| _|dkrd| _ntd|d@ }|dkrd}n|sd}ntd|| jd< |d@ r*d| jd< |rB| j || jd< |rt|dt|d |d!   }}	}
|
dkrt	d"d#| | j d|	  | _
nZ|
d$krt	d%d&| | j d|	  | _
n,|
dkrt	d'd(| | j d)|	  | _
ydt|d!@ |f }|d@ r0dd*| j | j  |||ffg| _n"d+d*| j | j  |d|ffg| _W n tk
rj   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;15s     r   r   s      r   s          )r   r   raw)fpread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-unpacked-wheel-rysjrues/PIL/TgaImagePlugin.py_open5   sx    


 
 
 

zTgaImageFile._openN)__name__
__module____qualname__format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 n6 tk
rL } ztd| j d|W d 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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 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   r(   s           TRUEVISION-XFILE. )SAVEr/   r3   OSErrorZencoderinfogetr0   lenwarningswarnwriter   o16r-   imZ
getpaletter   _save)rQ   r)   filenamer<   bitsr7   r8   erE   r#   r$   r6   ZcolormapfirstZcolormaplengthZcolormapentryr:   r!   r=   r=   r>   rR      sJ    &




n
  rR   z.tgaz.icbz.vdaz.vstzimage/x-tga)rM   rF   r   r   r   _binaryr   r+   r   r   rP   r1   r   rI   rR   Zregister_openrC   Zregister_saveZregister_extensionsZregister_mimer=   r=   r=   r>   <module>   s.   	oK