B .^p@sddlZddlmZmZmZddlmZmZm Z m Z ddddd d d d Z Gd ddejZ dddddddZddZee je ee jeee jddddgee jddS)N)Image ImageFile ImagePalette)i8i16leo8o16leP1LLAzBGR;5BGRBGRA))r)r)rr)r)r)r)r c@seZdZdZdZddZdS) TgaImageFileZTGAZTargac Cs|jd}t|d}t|d}t|d}t|d}t|d}t|ddt|ddf|_|d ks|jddks|jddks|d krtd |d krd |_|dkrd|_n|dkrd|_n6|dkrd|_n&|dkrd|_|dkrd|_ntd|d@}|dkrd}n|s&d}ntd||jd<|d@rLd|jd<|rd|j||jd<|r&t|ddt|d dt|d!d}} } | dkrt d"d#||jd| |_ nZ| d$krt d%d&||jd| |_ n,| dkr&t d'd(||jd)| |_ ydt |d!@|f} |d@rfdd*|j|j | ||ffg|_n"d+d*|j|j | d|ffg|_Wntk rYnXdS),Nrrrr )rr)rrrrrznot a TGA file)r r r r )r r )r RGBrRGBAzunknown TGA mode0zunknown TGA orientation orientationrtga_rle compression id_sectionrzBGR;16srrsrs)rrraw)fpreadri16_sizesize SyntaxErrormodeinforr)ZpaletteMODEStellZtileKeyError) selfsid_len colormaptype imagetypedepthflagsr"startr.Zmapdepthrawmoder>6/tmp/pip-install-mwhup7aw/Pillow/PIL/TgaImagePlugin.py_open3sx      "    4      zTgaImageFile._openN)__name__ __module__ __qualname__formatformat_descriptionr@r>r>r>r?r.sr)r rrr)r rrr)r rrr)r rrr)rrrr)rrrr)r r r r rrc Cs yt|j\}}}}Wn"tk r8td|jYnXd|jkrP|jd}n|jd|jd}|dk}|rz|d7}|jd|jdd} t| } | dkrd} | dd} t d |rd \} } } n d \} } } |jd krd}nd }|jd|jdd}|d kr|dB}| t | t |t |t | t | t | t d t d t |j d t |j dt |t || r| | |r| |jdd|rt||dd|j d ||ffgn$t||dd|j d |d |ffg| ddS)Nzcannot write mode %s as TGArler$r#rr%z-id_section has been trimmed to 255 characters)rr)rrr)r rrr"r!rrrr)rrr)sTRUEVISION-XFILE.)SAVEr0r4OSErrorZ encoderinfogetr1lenwarningswarnwritero16r.imZ getpaletter_save)rRr*filenamer=bitsr8r9rFr$r%r7Z colormapfirstZcolormaplengthZ colormapentryr;r"r>r>r?rSsJ         n   rSz.tgaz.icbz.vdaz.vstz image/x-tga)rNrGrrr_binaryrrr,rr rQr2rrJrSZ register_openrDZ register_saveZregister_extensionsZ register_mimer>r>r>r?s* oK