3 }\ @sddlmZmZmZddlmZmZmZm Z ddl Z dZ dddd dd d d d!dd"dd#diZ GdddejZd$d%d&d'd(d)dZddZejejeejejeejejddddgejejddS)*)Image ImageFile ImagePalette)i8i16leo8o16leNz0.3P1LLAzBGR;5BGR BGRAc@seZdZdZdZddZdS) TgaImageFileZTGAZTargac Cs|jjd}t|d}t|d}t|d}t|d}t|d}t|ddt|ddf|_|d&ks|jddks|jddks|d'krtd |d(krd|_|dkrd|_n|dkrd|_n:|d)krd|_n*|d*krd|_|d krd|_ntd|d@}|d krd}n|s*d+}ntd||jd<|d @rPd|jd<|rh|jj||jd<|r*t|d dt|ddt|dd}} } | dkrt j d d,||jjd| |_ nZ| d krt j d"d-||jjd | |_ n,| d kr*t j d#d.||jjd$| |_ ydt |d@|f} |d @rjdd/|j|jj | ||ffg|_n"d%d0|j|jj | d|ffg|_Wntk rYnXdS)1Nr rrr r rrznot a TGA filer rr r r RGBRGBAzunknown TGA mode0zunknown TGA orientation orientationtga_rle compression id_sectionzBGR;16rrraw)r r)rr rrr)r r)rr)rrsss)r r )r r )fpreadri16_sizesize SyntaxErrormodeinforr)ZpaletteMODEStellZtileKeyError) selfsid_len colormaptype imagetypedepthflagsr!startr/Zmapdepthrawmoder?j/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-i584jbuk/Pillow/PIL/TgaImagePlugin.py_open7sn      "      4        zTgaImageFile._openN)__name__ __module__ __qualname__formatformat_descriptionrAr?r?r?r@r2sr)r rrr rrcCs yt|j\}}}}Wn"tk r8td|jYnXd|jkrP|jd}n|jjd|jjd}|dk}|rz|d7}|jjd|jjdd} t| } | dkrd} | dd} tj d |rd\} } } n d\} } } |jdkrd}nd }|jjd|jjdd}|d kr|dB}|j t | t |t |t | t | t | t d t d t |j d t |j dt |t || r|j | |r|j |jjdd|rtj||dd|j d ||ffgn$tj||dd|j d |d |ffg|j ddS) Nzcannot write mode %s as TGArler#r"r r$z-id_section has been trimmed to 255 charactersr rrrr!rrrrr)r'sTRUEVISION-XFILE.)r rJr)r r r )rrr*)r r )r r ssTRUEVISION-XFILE.sTRUEVISION-XFILE.)SAVEr1r5IOErrorZ encoderinfogetr2lenwarningswarnwritero16r/imZ getpaletter_save)rSr+filenamer>bitsr9r:rGr#r$r8Z colormapfirstZcolormaplengthZ colormapentryr<r!r?r?r@rTsV         b   rTz.tgaz.icbz.vdaz.vstz image/x-tga)rr )r r)r r )r r)rr)rr)rr)r rr r )rr r r )rrr r )r r rr)rrr r)rrr r)rHrrr_binaryrrr-rrrRrO __version__r3rrKrTZ register_openrEZ register_saveZregister_extensionsZ register_mimer?r?r?r@s, \K