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 .
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.
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.
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.
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.
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. |
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. |
Toto pole je identifikátor souboru a může být dlouhé od 0 do 255 bajtů.
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.
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.
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.
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.
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í.
Obsahuje délku zóny v bajtech. Pro verzi 2.0 formátu by tato hodnota měla být 495.
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.
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.
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.
Místo pro 40 znaků ASCII a jeden bajt null.
Podobně jako pole Datum/čas , místo pro uložení tří hodnot (hodina-minuta-sekunda).
Místo pro řetězec ID softwaru, pomocí kterého byl soubor vytvořen.
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.
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.
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.
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.
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á.
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.
Offset na začátek tabulky Scan Lines.
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.
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).
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 obsahuje 256x4 2bajtových hodnot, každá sekvence čtyř takových hodnot odpovídá kanálům ARGB.
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.
kontejnery na média | |
---|---|
Video/Audio | |
Zvuk | |
Hudba |
|
Rastrové | |
Vektor | |
Komplex |