TGA (též označovaný jako Targa) je jeden ze souborový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ýrobu obrazových adaptérů, tzv. videograbberů. Grabberů typu Targa existovalo několik typů a pro každý byla vytvořena vlastní varianta grafického formátu TGA (lišily se především v počtu bitů na pixel). Tyto videoadaptéry byly první pro IBM PC, které podporovaly true 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á v true color (32bitové) paletě. Je však možné uložit i bitmapu ve stupních šedi (greyscale), či bitmapu obsahující indexovanou barevnou paletu (jako GIF) 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ři počí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í barev pixelů a orientace obrázku. Hlavičku je možné srovnat například s hlavičkou souboru BMP, jejíž velikost je 54 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.