Truevision TGA

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 3. října 2018; kontroly vyžadují 7 úprav .
Truevision TGA
Rozšíření .tga, .tpic, .vda, .vstnebo.icb
MIME typ image/x-targa a image/x-tga
Vývojář Truevision [d] [1]
Typ formátu rastrová grafika

Truevision TGA (TGA) je formát rastrové grafiky. Původně vytvořen Truevision Inc. pro grafické adaptéry vlastní výroby již v roce 1984 , ale později se stal populární na různých platformách, zejména v oblasti zpracování videa a animace.

Soubory v tomto formátu mají obvykle příponu .tga na starších systémech DOS nebo .tpic na počítačích Macintosh . Formát podporuje barevné hloubky 1-32 bitů na pixel . K dispozici je podpora pro alfa kanály , komprese RLE .

Přehled struktury souborů

Obrazový soubor TGA se skládá z pěti zón, z nichž každá obsahuje jedno nebo více polí pevné nebo proměnné délky:

Poslední tři zóny byly přidány do specifikace formátu v září 1989. Z tohoto důvodu soubory vytvořené pomocí softwaru napsaného před tímto datem nemusí obsahovat tyto zóny. Chcete-li zjistit, zda je soubor původní nebo novou verzí, přečtěte si posledních 26 bajtů souboru. Pro novou verzi budou tyto bajty obsahovat zápatí souboru, jehož bajty 8-23 obsahují znakovou sadu ASCII "TRUEVISION-XFILE". Přítomnost tohoto řádku znamená, že soubor může obsahovat zóny (3) a (4).

Samotný suterén má následující strukturu (byte - účel):

Podrobnější popis na konci článku.

Záhlaví souboru

Délka identifikátoru (1 byte)

Určuje počet bajtů obsažených v poli Identifikátor. Maximální počet znaků je 255. Hodnota nula znamená, že soubor neobsahuje pole Identifikátor.

Typ barevné mapy (1 byte)

Určuje typ barevné mapy obsažené v souboru. V tuto chvíli (popis je z ledna 1991) jsou definovány dvě hodnoty - 0 (soubor neobsahuje mapu barev) a 1 (soubor obsahuje mapu barev). Prvních 128 hodnot tohoto pole je vyhrazeno pro použití Truevision, zbytek mohou použít vývojáři softwaru.

True-Color obrázky obvykle nepoužívají barevnou mapu, ale některé aplikace ukládají do tohoto pole informace o paletě nebo jiná data. Doporučuje se zkontrolovat hodnotu pole Typ obrázku (popsáno v dalším odstavci), abyste se ujistili, že soubor může tato data používat. V opačném případě může být toto pole ignorováno.

Při zápisu nebo ukládání souboru by toto pole mělo být z důvodu kompatibility vyplněno nulovými hodnotami. V novém formátu souborů je samostatná zóna pro ukládání vývojářských dat.

Typ obrázku (1 byte)

Soubor TGA lze použít k uložení obrázků s různou barevnou hloubkou. Je definováno sedm typů obrázků:

Význam Popis Použitá barevná mapa Používá se komprese
0 Bez obrázku Ne Ne
jeden Obrázek s paletou Ano Ne
2 truecolor obrázek Ne Ne
3 monochromatický obrázek Ne Ne
9 Obrázek s paletou Ano Ano
deset truecolor obrázek Ne Ano
jedenáct monochromatický obrázek Ne Ano

Prvních 128 hodnot je vyhrazeno pro použití Truevision, zbytek mohou použít vývojáři.

Popis barevné mapy (5 bajtů)

Toto pole a jeho podsekce popisují barevnou mapu (pokud je použita). Pokud pole Typ mapy barev (popsané výše) obsahuje nulu, musí těchto pět bajtů obsahovat také nuly.

Pole Velikost Popis
Index prvního prvku 2 bajty Ukazuje na počáteční prvek palety.
Délka barevné karty 2 bajty Určuje počet položek palety.
Velikost prvku barevné mapy 1 bajt Počet bitů na prvek palety. Běžně používané hodnoty jsou 15, 16, 24 nebo 32.

Popis obrázku (10 bajtů)

Toto pole popisuje rozměry, polohu obrazovky a hloubku obrazu v pixelech.

Pole Velikost Popis
X pozice obrázku 2 bajty Určuje absolutní vodorovnou souřadnici levého dolního rohu obrázku.
Pozice obrázku Y 2 bajty Určuje absolutní vertikální souřadnici levého dolního rohu obrázku.
Šířka obrázku 2 bajty Šířka obrázku v pixelech.
Výška obrázku 2 bajty Výška obrázku v pixelech.
Bitová hloubka barvy 1 bajt Určuje počet bitů na pixel, který se má použít.
Popisovač obrázku 1 bajt Bity 3-0 tohoto pole určují počet bitů alfa kanálu.

Bity 5 a 4 určují pořadí, ve kterém jsou pixelová data přenášena ze souboru na obrazovku. Bit 4 je nastaven pro pořadí zprava doleva, bit 5 pro pořadí shora dolů. Bity 7 a 6 musí být kvůli kompatibilitě nastaveny na 0.

Obrazová/barevná mapa

Identifikátor (proměnná délka)

Toto pole je identifikátor souboru a může být dlouhé od 0 do 255 bajtů.

Data barevné mapy (proměnná délka)

Pokud typ mapy barev (popsaný výše) obsahuje nulu, bude toto pole vynecháno. Pole Velikost prvku mapy barev a Délka mapy barev umožňují definovat velikost tohoto pole . Každý prvek barevné mapy zabírá celý počet bajtů; každý barevný kanál zabírá MIN ( velikost prvku barevné mapy /3, 8) bitů, takže pro velikost prvku 24 bude mít každý ze tří barevných kanálů 8 bitů, stejně jako pro 32bitové prvky.

Obrazová data (proměnná délka)

Toto pole obsahuje (šířka*výška) pixely. Každý pixel určuje obrazová data v jednom z následujících formátů: jeden index prvku barevné mapy, jednotlivé hodnoty pro každý barevný kanál nebo individuální indexy intenzity pro formát Direct Color.

Vývojářská zóna (proměnná délka)

Tato zóna může mít libovolnou velikost a může obsahovat jakýkoli typ informací podle uvážení vývojáře softwaru, i když se doporučuje, aby byla používána výhradně pro ukládání specifických informací, které nejsou určeny pro zbytek softwaru a nejsou popsány ve specifikaci formátu. Protože soubor může obsahovat více než jednu vývojářskou zónu, existuje seznam zón obsahující „mapu“ polí zahrnutých v těchto zónách. Bajty 4-7 zápatí souboru obsahují posun od začátku souboru k začátku seznamu vývojářských zón. Pokud tyto bajty obsahují hodnotu null, seznam zón a samotné zóny v souboru nejsou.

Seznam developerských zón

Určuje počet značek obsažených v seznamu. Zbytek seznamu za touto hodnotou obsahuje sekvence tag-offset-size.

Každý tag může obsahovat hodnotu od 0 do 65535. Hodnoty 0-32767 mohou používat vývojáři, zbytek je vyhrazen pro použití Truevision.

Obsahuje hodnotu, která určuje posun od začátku souboru k začátku pole, na které značka odkazuje.

Určuje velikost pole, na které značka odkazuje.

Expanzní zóna

Posun k rozšiřující zóně je uložen v zápatí souboru. Pokud je posun nula, soubor neobsahuje zónu rozšíření.

Velikost zóny rozšíření (2 bajty)

Obsahuje délku zóny v bajtech. Pro verzi 2.0 formátu by tato hodnota měla být 495.

Jméno autora (41 bajtů)

Prostor pro řetězec ASCII až 40 znaků a jeden bajt null. Pokud se pole nepoužívá, doplní se nulami nebo mezerami. Poslední znak musí být vždy nula.

Komentář autora (324 bytes)

Místo pro čtyři řádky, z nichž každý může obsahovat nulový bajt a až 80 významných znaků. Nevyužité místo je vyplněno nulami nebo mezerami, 81. bajt každého řádku musí být nula.

Datum a čas (12 bajtů)

Toto pole obsahuje sekvenci šesti 2bajtových hodnot pro datum a čas uložení obrázku (měsíc-den-rok-hodina-minuty-sekundy). Pokud toto pole není použito, je vyplněno nulami.

Název/ID úlohy (41 bajtů)

Místo pro 40 znaků ASCII a jeden bajt null.

Čas úlohy (6 bajtů)

Podobně jako pole Datum/čas , místo pro uložení tří hodnot (hodina-minuta-sekunda).

ID softwaru (41 bajtů)

Místo pro řetězec ID softwaru, pomocí kterého byl soubor vytvořen.

Verze softwaru (3 bajty)

Pole obsahuje dvě složky – 2bajtové číslo a znak ASCII. Umístění pro uložení verze softwaru, pomocí kterého byl soubor vytvořen.

Barva klíče (4 bajty)

4bajtová hodnota, která definuje klíčovou barvu alfa kanálu ve formátu ARGB. Pokud obrázek neobsahuje alfa kanál, je hodnota prvního bajtu nastavena na nulu. Klíčová barva definuje barvu pozadí nebo "průhlednou barvu". Pokud pole není použito, je vyplněno nulami.

Poměr stran pixelů (4 bajty)

Obsahuje dvě 2bajtové hodnoty, které definují šířku a výšku pixelu. Stejné nenulové hodnoty definují čtvercový pixel, nula v druhé hodnotě znamená, že není zadán žádný poměr.

Gamma (4 bajty)

Obsahuje dvě 2bajtové hodnoty používané jako čitatel a jmenovatel při výpočtu zlomkové hodnoty gama. Výsledek dělení musí být mezi 0 a 10,0 a musí mít pouze jedno desetinné místo. Pokud toto pole není použito, obě hodnoty se musí navzájem rovnat (po dělení získáte 1,0), nebo druhá hodnota musí být nula.

Barevný posun korekce (4 bajty)

Obsahuje posun v bajtech od začátku souboru po tabulku oprav. Tabulku lze umístit kamkoli za pole obrazových dat a před konec souboru. Pokud snímek nevyžaduje korekci, je tato hodnota nulová.

Ofset poštovní známky (4 bajty)

Obsahuje posun ke zmenšené kopii obrazu obsaženého v souboru. Obrázek se zapisuje mezi tabulku Scan Line Table (popsáno níže) a zápatí souboru.

Posun řádků skenování (4 bajty)

Offset na začátek tabulky Scan Lines.

Typ atributu (1 byte)

Tato hodnota určuje typ dat alfa kanálu uložených s obrázkem.

Příklad přednásobeného alfa kanálu. Data alfa kanálu se používají k označení stupně krytí každého pixelu (používá se, když jeden obrázek překrývá jiný obrázek), kde 0 znamená, že pixel je zcela průhledný a hodnota 1 znamená, že pixel je zcela neprůhledný (za předpokladu, že hodnoty komponent jsou normalizovány). Čtveřice čísel (a, r, g, b) s hodnotami (0,5, 1, 0, 0) bude znamenat, že pixel je čistě červený s průhledností 0,5. Z různých důvodů (včetně vytváření složených obrázků) je lepší předem vynásobit jednotlivé barevné složky hodnotou alfa kanálu. Toto násobení dá další čtyři čísla (0,5, 0,5, 0, 0).

Hodnota 4 v poli Typ atributu (pole 24) bude znamenat, že barevné složky pixelu jsou již zmenšeny podle hodnoty z alfa kanálu. Podrobnosti o předem vynásobených hodnotách viz sborník konference SIGGRAPH 1984.

Scan Line Table

Tabulka by měla obsahovat sadu posunů v bajtech od začátku souboru po začátek skenovaných řádků v příslušném pořadí (například shora dolů/zdola nahoru).

Obrázek Poštovní známka

Zmenšená kopie obrázku obsaženého v souboru. Uloženo ve stejném formátu jako v plné velikosti, ale bez použití kompresních metod. První bajt obsahuje šířku kopie v pixelech, druhý výšku. Truevision nedoporučuje používat obrázky větší než 64x64 pixelů.

Tabulka korekcí barev (2 KB)

Tabulka obsahuje 256x4 2bajtových hodnot, každá sekvence čtyř takových hodnot odpovídá kanálům ARGB.

Sklep

Předposlední znak podpisu musí být znak „.“ (tečka), jinak nebude soubor rozpoznán jako platný soubor TGA.

Vývojář není povinen číst, zapisovat nebo používat rozšíření nebo vývojářské zóny, ale i když se nepoužívají, doporučuje se zahrnout do souboru zápatí a určit nuly jako posuny k nepoužívaným zónám.

Poznámky

  1. http://www.digitalpreservation.gov/formats/fdd/fdd000179.shtml

Odkazy