B
    eAd                 @   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rd}t||dkrd| _|dkrd| _q|dkrd| _n:|dkrd| _n*|dkrd| _|dkrd| _nd}t||d@ }|dk| _|dkrd}n|dkrd}nd}t||| jd< |d@ rFd| jd < |r^| j || jd!< |rt|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@ rLd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   )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(   paletteMODEStellZtileKeyError)selfsid_lencolormaptype	imagetypedepthflagsmsgr!   startr-   Zmapdepthrawmode r@   D/var/www/html/venv/lib/python3.7/site-packages/PIL/TgaImagePlugin.py_open4   s    





 
 
 

zTgaImageFile._openc             C   s   | j r| jtjj| _d S )N)r0   imZ	transposer   Z	TransposeZFLIP_LEFT_RIGHT)r6   r@   r@   rA   load_end   s    zTgaImageFile.load_endN)__name__
__module____qualname__formatformat_descriptionrB   rD   r@   r@   r@   rA   r   0   s   fr   )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   s0  yt | j \}}}}W n: tk
rP } zd| j d}t||W d d }~X Y nX d| jkrh| 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
 |r| j
dd}t|d d }}nd\}}| jdkrd}nd}| jd| jdd}|dkrB|dB }|t|t| t| td t| t| td td t| jd  t| jd  t| t|  |r|| |r|| |	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 charactersr   r   r   r   )r   r   )r   r   r   r!   r    r   r   r(   s           TRUEVISION-XFILE. )SAVEr/   r5   OSErrorZencoderinfogetr1   lenwarningswarnrC   Z
getpalettewriter   o16r-   r   _save)rC   r)   filenamer?   bitsr9   r:   er=   rJ   r#   r$   r8   r2   ZcolormaplengthZcolormapentryr<   r!   r@   r@   rA   rU      sN    


n

  rU   z.tgaz.icbz.vdaz.vstzimage/x-tga)rQ   rK   r   r   r   _binaryr   r+   r   r   rT   r3   r   rM   rU   Zregister_openrH   Zregister_saveZregister_extensionsZregister_mimer@   r@   r@   rA   <module>   s.   	uL