TGA (též označovaný jakoTarga) je jeden zesouborových formátů pro ukládánírastrovépočítačové grafiky. Formát vytvořila společnost Truevision (nyníPinnacle Systems), která se specializovala na výrobuobrazových adaptérů, tzv. videograbberů. Grabberů typuTarga existovalo několik typů a pro každý byla vytvořena vlastní variantagrafického formátu TGA (lišily se především v počtubitů napixel). Tyto videoadaptéry byly první pro IBM PC, které podporovalytrue color.
Nejčastěji používané nekomprimované typy zápisu dat jsou tyto:
Rastrový obraz (bitmapa) může být v grafických souborech typu TGA uložen různými způsoby, a to buď v komprimované, nebo volné (nekomprimované) formě. Komprimované obrazové soubory typu TGA se dnes již téměř nepoužívají, neboť výhoda formátu je právě v jednoduché manipulaci s nekomprimovaným TGA. Pravděpodobně nejpoužívanější je nekomprimovaná bitmapa uložená vtrue color (32bitové) paletě. Je však možné uložit i bitmapu ve stupních šedi (greyscale), či bitmapu obsahující indexovanou barevnou paletu (jakoGIF) místo přímých barev. Za zmínku stojí podpora bitmap uložených ve stupních šedi, které jsou často používány při ukládání snímků získaných připočítačové tomografii. (Pro převod na snímek s paletou pro další zpracování obrazu je tento formát zcela nevhodný).
Informace v souborech (tzv. hlavička) typu TGA jsou rozděleny do sekcí, přičemž pouze první je povinná – jde o informační hlavičku, jejíž velikost je vždy rovna 18 bajtům. Jsou zde umístěny základní informace o obraze, zejména jeho rozlišení, způsob kódování barevpixelů a orientace obrázku. Hlavičku je možné srovnat například s hlavičkou souboruBMP, jejíž velikost je54 bajtů, a neobsahuje navíc žádné další důležité informace, spousta informací naopak chybí. Při prohledání hlavičky TGA však zjistíme, že i ona obsahuje nadbytečné údaje a bylo by možné ji o pár bitů zkrátit.
Hlavička souboru ve formátu TGA
Offset | Velikost (byte) | Název | Význam položky |
---|---|---|---|
0 | 1 byte | IDLength | velikost obrazového identifikátoru |
1 | 1 byte | ColorMapType | typ barevné mapy |
2 | 1 byte | ImageType | typ obrázku |
3 | 2 byte | CMapStart | počátek barevné palety |
5 | 2 byte | CMapLength | délka barevné palety |
7 | 1 byte | CMapDepth | bitová hloubka položek barevné palety |
8 | 2 byte | XOffset | X-ová souřadnice počátku obrázku |
10 | 2 byte | YOffset | Y-ová souřadnice počátku obrázku |
12 | 2 byte | Width | šířka obrázku uvedená v pixelech |
14 | 2 byte | Height | výška obrázku uvedená v pixelech |
16 | 1 byte | PixelDepth | počet bitů na jeden pixel (bitová hloubka) |
17 | 1 byte | ImageDescriptor | popisovač obrázku |
Bitmapy je možné komprimovat několika způsoby, typicky se používá jednoduché kódování RLE (Run Length Encoding), které může být kombinované s Huffmanovým kódem. V porovnání s komprimací pomocí algoritmů LZ77 a LZW (použité například v GIF a PNG) je však RLE i Huffmanovo kódování pro většinu snímků méně účinné, i když mnohem jednodušší na implementaci. Kromě vlastních barev jednotlivých pixelů je možné ukládat i alfa kanál; v něm může být průhlednost popsána buď jedním bitem (podobně jako v případě grafického formátu GIF), nebo bity osmi (256 stupňů průhlednosti).
Formát je často používán pro tvorbu realistické grafiky, využívají jej programy pracující s lokálním osvětlovacím modelem, je vhodný pro ukládání a načítánítextur. Následuje ukázka použití TGA formátu v několika programech a PC hrách.