
hR\                 @   s   d  d l  m Z m Z m Z d  d l m Z m Z m Z m	 Z
 d Z i d d 6d d 6d d 6d	 d 6d d 6d d 6Z Gd d   d e j  Z i d d 6d  d 6d! d 6d" d 6d# d 6Z 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   LzBGR;5      BGR   BGRA    c               @   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 r t d   n  | d' k rd |  _ | d k rbd |  _ qbnT | d( k r&d |  _ n< | d) k rVd |  _ | d k rbd |  _ qbn t d   | d @} | d k rd } n | sd* } n t d   | |  j d <| d	 @rd |  j d <n  | r|  j  j |  |  j d <n  | rt | d d    t | d d    t | d d    } }	 }
 |
 d k rkt j	 d d+ | |  j  j d |	   |  _
 q|
 d
 k rt j	 d! d, | |  j  j d |	   |  _
 q|
 d k rt j	 d" d- | |  j  j d# |	   |  _
 qn  y t | d @| f } | d	 @r;d d. |  j |  j  j   | | | f f g |  _ n1 d$ d/ |  j |  j  j   | d | f f g |  _ Wn t k
 rYn Xd  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_rlecompressionZ
id_section      zBGR;16s    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	imagetypedepthflagsr    startr*   Zmapdepthrawmode r9   G/var/www/dbchiro/venv/lib/python3.4/site-packages/PIL/TgaImagePlugin.py_open2   sj    /&		
		
D**-
'(zTgaImageFile._openN)__name__
__module____qualname__formatZformat_descriptionr;   r9   r9   r9   r:   r   -   s   r   r   r   r   c             C   s  y t  |  j \ } } } } Wn% t k
 rD t d |  j   Yn X| r] d \ } } }	 n d \ } } }	 |  j d k r d }
 n d }
 |  j j d d  } | d k r |
 d	 B}
 n  | j d
 t |  t |  t |  t |  t |	  t d  t d  t |  j	 d  t |  j	 d  t |  t |
   | rf| j |  j
 j d d   n  t j |  | d d |  j	 d | d | f f g  | j d d d
  d  S)Nzcannot write mode %s as TGAr      r   r   r
   r    r   r   s    r   r   r%   s   TRUEVISION-XFILE.)r   r@   r   )r   r   r   r&   )r   r   s           )SAVEr,   r0   IOErrorr-   getwriter   o16r*   imZ
getpaletter   _save)rF   r'   filenamer8   bitsr3   r4   ZcolormapfirstZcolormaplengthZcolormapentryr6   r    r9   r9   r:   rG      s*    	
u,rG   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   )zBGRr   r   r   )zBGRAr   r   r   ) r   r   r   Z_binaryr   r   r)   r   r   rE   __version__r.   r   rA   rG   Zregister_openr?   Zregister_saveZregister_extensionr9   r9   r9   r:   <module>   s(   "
X
/