Truevision TGA

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 3 octombrie 2018; verificările necesită 7 modificări .
Truevision TGA
Extensie .tga, .tpic, .vda, .vstsau.icb
tip MIME imagine/x-targa și imagine/x-tga
Dezvoltator Truevision [d] [1]
Tip de format grafică raster

Truevision TGA (TGA) este un format de grafică raster . Creat inițial de Truevision Inc. pentru adaptoare grafice de producție proprie încă din 1984 , dar mai târziu a devenit popular pe o varietate de platforme, în special în domeniul procesării video și al animației.

De obicei, fișierele în acest format au extensia .tga pe sistemele DOS vechi sau .tpic pe computerele Macintosh . Formatul acceptă adâncimi de culoare de 1-32 de biți per pixel . Există suport pentru canale alfa , compresie RLE .

Prezentare generală a structurii fișierelor

Un fișier imagine TGA este format din cinci zone, fiecare conținând unul sau mai multe câmpuri de lungime fixă ​​sau variabilă:

Ultimele trei zone au fost adăugate la specificația formatului în septembrie 1989. Din acest motiv, fișierele create cu software scris înainte de această dată pot să nu conțină aceste zone. Pentru a determina dacă un fișier este versiunea originală sau versiunea nouă, citiți ultimii 26 de octeți ai fișierului. Pentru noua versiune, acești octeți vor conține subsolul fișierului, octeții 8-23 dintre care conțin setul de caractere ASCII „TRUEVISION-XFILE”. Prezența acestei linii înseamnă că fișierul poate conține zone (3) și (4).

Subsolul în sine are următoarea structură (octet - scop):

Descriere mai detaliată la sfârșitul articolului.

Antetul fișierului

Lungimea identificatorului (1 octet)

Specifică numărul de octeți conținut în câmpul Identificator. Numărul maxim de caractere este 255. O valoare zero indică faptul că fișierul nu conține un câmp de identificare.

Tip hartă color (1 octet)

Specifică tipul de hartă de culori inclusă în fișier. În prezent (descrierea este din ianuarie 1991), sunt definite două valori - 0 (fișierul nu conține o hartă de culori) și 1 (fișierul conține o hartă de culori). Primele 128 de valori ale acestui câmp sunt rezervate utilizării Truevision, restul pot fi folosite de dezvoltatorii de software.

Imaginile True-Color nu folosesc de obicei o hartă de culori, dar unele aplicații stochează informații despre paletă sau alte date în acest câmp. Se recomandă să verificați valoarea câmpului Image Type (descris în paragraful următor) pentru a vă asigura că fișierul poate folosi aceste date. În caz contrar, acest câmp poate fi ignorat.

Când scrieți sau salvați un fișier, din motive de compatibilitate, acest câmp trebuie completat cu valori zero. În noul format de fișier, există o zonă separată pentru stocarea datelor dezvoltatorului.

Tip imagine (1 octet)

Fișierul TGA poate fi folosit pentru a salva imagini cu diferite adâncimi de culoare. Sunt definite șapte tipuri de imagini:

Sens Descriere Harta de culori folosita Se folosește compresia
0 Fara poza Nu Nu
unu Imagine cu paletă da Nu
2 imagine truecolor Nu Nu
3 imagine monocromă Nu Nu
9 Imagine cu paletă da da
zece imagine truecolor Nu da
unsprezece imagine monocromă Nu da

Primele 128 de valori sunt rezervate pentru utilizarea Truevision, restul pot fi folosite de dezvoltatori.

Descrierea hărții de culoare (5 octeți)

Acest câmp și subsecțiunile sale descriu harta de culori (dacă este utilizată). Dacă câmpul Color Map Type (descris mai sus) conține zero, acești cinci octeți trebuie să conțină și zerouri.

Camp Marimea Descriere
Indexul primului element 2 octeți Indică elementul de pornire al paletei.
Lungime card de culoare 2 octeți Specifică numărul de elemente din paletă.
Dimensiunea elementului hartă de culoare 1 octet Numărul de biți per element de paletă. Valorile utilizate în mod obișnuit sunt 15, 16, 24 sau 32.

Descrierea imaginii (10 octeți)

Acest câmp descrie dimensiunile, poziția ecranului și adâncimea pixelilor imaginii.

Camp Marimea Descriere
Poziția X a imaginii 2 octeți Specifică coordonata orizontală absolută a colțului din stânga jos al imaginii.
Poziția imaginii Y 2 octeți Specifică coordonata verticală absolută a colțului din stânga jos al imaginii.
Lățimea imaginii 2 octeți Lățimea imaginii în pixeli.
Înălțimea imaginii 2 octeți Înălțimea imaginii în pixeli.
Adâncimea biților de culoare 1 octet Specifică numărul de biți pe pixel de utilizat.
Descriptor de imagine 1 octet Biții 3-0 din acest câmp determină numărul de biți al canalului alfa.

Biții 5 și 4 determină ordinea în care datele pixelilor sunt transferate din fișier pe ecran. Bitul 4 este setat pentru ordinea de la dreapta la stânga, bitul 5 pentru ordinea de sus în jos. Biții 7 și 6 trebuie setați la 0 pentru compatibilitate.

Harta imagine/culoare

Identificator (lungime variabilă)

Acest câmp este identificatorul fișierului și poate avea o lungime de la 0 la 255 de octeți.

Datele hărții de culoare (lungime variabilă)

Dacă tipul hărții de culori (descris mai sus) conține zero, acest câmp va fi omis. Câmpurile Dimensiunea elementului hărții de culoare și Lungimea hărții de culori vă permit să definiți dimensiunea acestui câmp. Fiecare element al hărții de culori ocupă un număr întreg de octeți; fiecare canal de culoare ocupă MIN ( Dimensiunea elementului Hartă de culoare /3, 8) biți, deci pentru o dimensiune a elementului de 24, fiecare dintre cele trei canale de culoare va lua 8 biți, la fel ca pentru elementele de 32 de biți.

Date imagine (lungime variabilă)

Acest câmp conține (lățime*înălțime) pixeli. Fiecare pixel specifică date de imagine într-unul dintre următoarele formate: un singur index de element al hărții de culoare, valori individuale pentru fiecare canal de culoare sau indici individuali de intensitate pentru formatul Direct Color.

Zona dezvoltatorului (lungime variabilă)

Această zonă poate fi de orice dimensiune și poate conține orice tip de informații la discreția dezvoltatorului de software, deși se recomandă ca aceasta să fie utilizată exclusiv pentru stocarea unor informații specifice care nu sunt destinate restului software-ului și care nu sunt descrise în specificația formatului. Deoarece un fișier poate conține mai multe zone de dezvoltator, există o listă de zone care conține o „hartă” a câmpurilor incluse în acele zone. Octeții 4-7 din subsolul fișierului conțin decalajul de la începutul fișierului până la începutul listei de zone de dezvoltator. Dacă acești octeți conțin o valoare nulă, lista de zone și zonele în sine nu sunt în fișier.

Lista zonelor pentru dezvoltatori

Specifică numărul de etichete conținute în listă. Restul listei după această valoare conține secvențe tag-offset-size.

Fiecare etichetă poate conține o valoare de la 0 la 65535. Valorile 0-32767 pot fi folosite de dezvoltatori, restul sunt rezervate pentru utilizarea Truevision.

Conține o valoare care specifică decalajul de la începutul fișierului până la începutul câmpului la care face referire etichetă.

Specifică dimensiunea câmpului la care face referire etichetă.

Zona de expansiune

Decalajul față de Zona de extindere este stocat în subsolul fișierului. Dacă offset-ul este zero, fișierul nu conține o zonă de extensie.

Dimensiunea zonei de extensie (2 octeți)

Conține lungimea zonei în octeți. Pentru versiunea 2.0 a formatului, această valoare ar trebui să fie 495.

Numele autorului (41 de octeți)

Spațiu pentru un șir ASCII de până la 40 de caractere și un octet nul. Dacă un câmp nu este utilizat, acesta este completat cu zerouri sau spații. Ultimul caracter trebuie să fie întotdeauna zero.

Comentariul autorului (324 bytes)

Spațiu pentru patru linii, fiecare dintre ele poate conține un octet nul și până la 80 de caractere semnificative. Spațiul nefolosit este umplut cu zerouri sau spații, al 81-lea octet al fiecărei linii trebuie să fie zero.

Data și ora (12 octeți)

Acest câmp conține o secvență de șase valori de 2 octeți pentru data și ora la care imaginea a fost salvată (lună-zi-an-oră-minute-secunde). Dacă acest câmp nu este utilizat, acesta este umplut cu zerouri.

Nume/ID job (41 de octeți)

Spațiu pentru 40 de caractere ASCII și un octet nul.

Timp de lucru (6 octeți)

Similar cu câmpul Data/Time , un loc pentru stocarea a trei valori (oră-minut-secundă).

ID software (41 de octeți)

Un loc pentru șirul ID al software-ului cu care a fost creat fișierul.

Versiunea software (3 octeți)

Câmpul conține două componente - un număr de 2 octeți și un caracter ASCII. Locația pentru a salva versiunea software-ului cu care a fost creat fișierul.

Culoarea cheii (4 octeți)

O valoare de 4 octeți care definește culoarea cheie a canalului alfa în format ARGB. Dacă imaginea nu conține un canal alfa, valoarea primului octet este setată la zero. Culoarea cheie definește culoarea de fundal sau „culoarea transparentă”. Dacă câmpul nu este utilizat, acesta este umplut cu zerouri.

Raport de aspect al pixelilor (4 octeți)

Conține două valori de 2 octeți care definesc lățimea și, respectiv, înălțimea unui pixel. Valorile egale diferite de zero definesc un pixel pătrat, zero în a doua valoare înseamnă că nu este specificat niciun raport.

Gamma (4 octeți)

Conține două valori de 2 octeți utilizate ca numărător și numitor atunci când se calculează valoarea gamma fracțională. Rezultatul împărțirii trebuie să fie între 0 și 10,0 și trebuie să aibă o singură zecimală. Când acest câmp nu este utilizat, ambele valori trebuie să fie egale între ele (pentru a obține 1,0 după împărțire), sau a doua valoare trebuie să fie zero.

Offset de corecție a culorii (4 octeți)

Conține decalajul în octeți de la începutul fișierului până la tabelul de corecție. Tabelul poate fi plasat oriunde după câmpul de date imagine și înainte de sfârșitul fișierului. Dacă imaginea nu necesită corectare, această valoare este zero.

Offset timbru poștal (4 octeți)

Conține un offset la o copie redusă a imaginii conținute în fișier. Imaginea este scrisă între tabelul cu linii de scanare (descris mai jos) și subsolul fișierului.

Scan Line Offset (4 octeți)

Deplasare la începutul tabelului Scan Lines.

Tip de atribut (1 octet)

Această valoare specifică tipul de date ale canalului alfa salvate împreună cu imaginea.

Un exemplu de canal alfa premultiplicat. Datele canalului alfa sunt utilizate pentru a indica gradul de opacitate al fiecărui pixel (utilizat atunci când o imagine se suprapune cu o altă imagine), unde 0 indică faptul că pixelul este complet transparent, iar valoarea 1 indică faptul că pixelul este complet opac (presupunând că toate valorile componentelor sunt normalizate). Un quad de numere (a, r, g, b) cu valori (0,5, 1, 0, 0) va indica faptul că pixelul este roșu pur cu o transparență de 0,5. Din diferite motive (inclusiv crearea de imagini compozite), este mai bine să premultiplicați componentele individuale de culoare cu valoarea canalului alfa. Această înmulțire va da următoarele patru numere (0,5, 0,5, 0, 0).

O valoare de 4 în câmpul Tip de atribut (câmpul 24) va indica faptul că componentele de culoare ale pixelului sunt deja scalate de valoarea din canalul alfa. Pentru detalii despre valorile premultiplicate, consultați lucrările conferinței SIGGRAPH 1984.

Scan Line Table

Tabelul trebuie să conțină un set de decalaje în octeți de la începutul fișierului până la începutul liniilor de scanare, în ordinea corespunzătoare (de exemplu, de sus în jos/de jos în sus).

timbru poștal imagine

O copie redusă a imaginii conținute în fișier. Salvat în același format ca dimensiunea completă, dar fără utilizarea metodelor de compresie. Primul octet conține lățimea copiei în pixeli, al doilea înălțimea. Truevision nu recomandă utilizarea imaginilor mai mari de 64x64 pixeli.

Tabel de corectare a culorilor (2 KB)

Tabelul conține valori de 256x4 de 2 octeți, fiecare secvență de patru astfel de valori corespunde canalelor ARGB.

Pivniță

Penultimul caracter al semnăturii trebuie să fie un caracter "." (punct), altfel fișierul nu va fi recunoscut ca fișier TGA valid.

Dezvoltatorul nu este obligat să citească, să scrie sau să utilizeze extensii sau zone de dezvoltator, dar chiar și atunci când acestea nu sunt utilizate, este recomandat să includă Subsol în fișier și să specifice zerouri ca decalaje pentru zonele neutilizate.

Note

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

Link -uri