3

Z                 @   s   d dl mZmZmZ d dlmZmZmZm	Z
 dZddddddddddddiZG dd dejZddd d!d"dZdd Zejeje ejeje ejejd dS )#   )Image	ImageFileImagePalette)i8i16leo8o16lez0.3   P   1L      zBGR;5   BGR    BGRAc               @   s   e Zd ZdZdZdd ZdS )TgaImageFileZTGAZTargac             C   s  | j 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| _n*|d)k rd| _|dk rd| _ntd|d@ }|dkrd}n|sd*}ntd|| jd< |d	@ r@d| jd< |rX| j j|| jd< |rt|dd  t|dd  t|dd    }}	}
|
dkrtj	dd+| | j jd|	  | _
nZ|
d
krtj	d!d,| | j jd|	  | _
n,|
dkrtj	d"d-| | j jd#|	  | _
ydt|d@ |f }|d	@ rZdd.| j | j j |||ffg| _n"d$d/| j | j j |d|ffg| _W n tk
r   Y nX d S )0N       r   r   r            r	   r   r   znot a TGA filer      r   r   	   r
   
   RGBRGBAzunknown TGA mode0   zunknown TGA orientationorientationZtga_rleZcompressionZ
id_section      zBGR;16    r   r      raw)r   r   )r   r	   r   r   r   )r   r   )r   r   )r   r   s     s      s       )r   r   )r   r   )fpreadr   i16sizeSyntaxErrormodeinfor   r%   ZpaletteMODEStellZtileKeyError)selfsZidlencolormaptype	imagetypeZdepthflagsr    startr*   Zmapdepthrawmode r8   4/usr/lib/python3/dist-packages/PIL/TgaImagePlugin.py_open2   sj    "





4
 
 



zTgaImageFile._openN)__name__
__module____qualname__formatZformat_descriptionr:   r8   r8   r8   r9   r   -   s   r   r   )r   r   r
   r   r   c             C   s@  yt | j \}}}}W n" tk
r8   td| j Y nX |rJd\}}}	n
d\}}}	| jdkrdd}
nd}
| jjdd}|dkr|
d	B }
|jd
t| t| t| t| t|	 td td t| j	d  t| j	d  t| t|
  |r|j| j
jdd tj| |dd| j	 d|d|ffg |jd d S )Nzcannot write mode %s as TGAr      r   r   r	   r    r   r   r#   r   r   r%   s   TRUEVISION-XFILE.)r   r?   r   )r   r   r   r&   )r   r   s           s           TRUEVISION-XFILE.s           TRUEVISION-XFILE. )SAVEr,   r0   IOErrorr-   getwriter   o16r*   imZ
getpaletter   _save)rE   r'   filenamer7   bitsr3   r4   ZcolormapfirstZcolormaplengthZcolormapentryr5   r    r8   r8   r9   rF      s*    


^ rF   z.tgaN)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   r   ) r   r   r   Z_binaryr   r   r)   r   r   rD   __version__r.   r   r@   rF   Zregister_openr>   Zregister_saveZregister_extensionr8   r8   r8   r9   <module>   s$   
Z0