a :jgD@sddlmZddlZddlmZddlmZmZmZddl m Z ddl m Z ddl m Zd d d d d dddZGdddejZdddddddZddddddd Zeejeeejeeejgd!eejd"dS)#) annotationsN)IO)Image ImageFile ImagePalette)i16le)o8)o16leP1LLABGRA;15ZBGRBGRA))r)r)rr)r)r)r)r c@s0eZdZdZdZddddZddddZd S) TgaImageFileZTGAZTargaNone)returnc Cs|jdusJ|jd}|d}|d}|d}|d}|d}t|dt|df|_|d vs|jddks|jddks|d vrd }t||d vrd |_|dkrd|_q|dkrd|_n@|dvr|rdnd |_n(|dvr|dkrdnd|_n d}t||d@}|dv|_|dvr d}n|dvr0d}n d}t|||jd<|d@rZd|jd <|rr|j||jd!<|rBt|d"t|d#|d$} } } | dkrt d%t d| |jd| |_ d|j _ np| dkrt d&t d"| |jd"| |_ n>| d'kr6t d(t d)| |jd)| |_ n d*}t|zlt|d$@|f} |d@rtdd+|j|j| ||fg|_n&td,d+|j|j| d|fg|_WntyYn0dS)-Nrrrr )rr)rrrrrznot a TGA file)r r r r)r r )r rRGBRGBAzunknown TGA mode0)rr$)rr$)rrzunknown TGA orientation orientationrtga_rle compression id_sectionrrrrrzunknown TGA map depthrrraw)fpreadi16_sizesize SyntaxError_mode_flip_horizontallyinforr.bytespalettemodeMODESr_TiletellZtileKeyError) selfsid_len colormaptype imagetypedepthflagsmsgr&startr3ZmapdepthrawmoderIOSErrorZ encoderinfogetr7lenwarningswarnrLZ getpalettewriter o16r3r_saver<)rLr/rSrHbitsrBrCerFrTr(r)rAr9ZcolormaplengthZ colormapentryrEr&rIrIrJr_s             r_)z.tgaz.icbz.vdaz.vstz image/x-tga) __future__rr[typingrrUrrr_binaryrr1r r r^r;rrWr_Z register_openrQZ register_saveZregister_extensionsZ register_mimerIrIrIrJs6     y P