Format Truevision TGA (.tga)

Specificația Standard

TGA (Targa) este un format raster asociat plăcilor de captură video TARGA de la Truevision și folosit în unele fluxuri de lucru pentru grafică și resurse de jocuri, mai ales în anii 1990 și 2000.

Convertește din TGA în PNG

Convertor gratuit din TGA în PNG direct în browser. Convertește fișiere instantaneu pe dispozitivul tău.

Inspectare și metadate

Sistemele de operare și analizatoarele de fișiere identifică fișierele TGA prin inspectarea secvenței binare inițiale:

Selectează sau plasează fișierele aici

Privat - fișierele nu părăsesc niciodată dispozitivul tău

sau lipește Ctrl+V
Garanție de confidențialitate: nicio transmisie prin rețea: 0 octeți încărcați pe servere externe. Toată procesarea a avut loc local în sandbox-ul browserului tău.

Semnătura antetului la nivel de octet (octeți magici)

Sistemele de operare și analizatoarele de fișiere identifică fișierele TGA prin inspectarea secvenței binare inițiale:

SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):

Fără semnătură fixă

REPREZENTARE ASCII: Fără semnătură fixă

Standardizare: Specificația formatului de fișier Truevision TGA v2.0

Specificații tehnice

Arhitectură containerAntet fix de 18 octeți, urmat de ID-ul imaginii, harta de culori, datele raster ale pixelilor și subsolul opțional versiunea 2.0
CompresieRânduri raster brute necomprimate sau codare RLE fără pierderi, bazată pe pachete
Ordinea octețilorLittle-Endian (Intel x86)
Spații de culoareRGB specific dispozitivului
Canale și structurăTonuri de gri pe 8 biți, RGB pe 16 biți (5-5-5-1), RGB pe 24 de biți sau RGBA pe 32 de biți cu alfa
Dimensiuni maxime65.535 x 65.535 de pixeli (câmpuri de dimensiune pe 16 biți)
TransparențăCanal alfa variabil pe 8 biți (în modul pe 32 de biți) sau alfa pe 1 bit (în modul pe 16 biți)
Streaming și progresivProcesare secvențială în flux a rândurilor; acceptă orientarea de sus în jos sau de jos în sus

Matrice de comparație tehnică: TGA vs. concurenți

Atribut tehnicTGA (Curent)PNGBMPDDS
Utilizarea texturilor în jocuri videoFolosit de unele motoare de jocuri din anii 1990-2000Interfețe 2D moderne și elemente webBitmap moștenit WindowsFormat modern comprimat GPU DirectX
Suport pentru canalul alfaAlfa curat pe 8 biți (mod pe 32 de biți)Alfa curat pe 8 bițiAlfa limitat pe 32 de bițiAlfa comprimat DXT/BC
Algoritm de compresieNecomprimat sau Packet RLECompresie Deflate fără pierderi; economia de spațiu depinde de conținutul imaginiiNecomprimat / RLECompresie directă în blocuri GPU (BC1-BC7)
Locația semnăturiiSubsol de 26 de octeți ('TRUEVISION-XFILE.')Antet la octetul 0 ('‰PNG....')Antet la octetul 0 ('BM')Antet la octetul 0 ('DDS ')

Moduri comune de corupție și ghid de recuperare hexazecimală

Imaginea se randează cu capul în jos sau oglindită orizontal.

Cauză principală: Biții descriptorului de imagine (biții 4 și 5 din octetul 17) sunt citiți greșit sau inversați de decodor.

Recuperare: Comută fanioanele de răsturnare verticală/orizontală sau convertește fișierul folosind File2File.app TGA Converter.

Analiză de securitate și vectori de atac asupra parserului

Decodorii TGA procesează fluxuri RLE bazate pe pachete unde valorile malformate ale lungimii secvențelor pot declanșa scrieri în memorie (heap) în afara limitelor.

Vectori de atac cunoscuți

  • Lungimea pachetului RLE care depășește limita tamponului destinat liniei de scanare.
  • Depășire de tampon la citirea intrărilor din paleta de culori care depășesc adâncimea declarată a hărții de culori.
  • Depășire de întreg în timpul alocării tamponului de memorie lățime * înălțime * (bpp / 8).

Cele mai bune practici de securitate: Aplică verificări stricte ale limitelor pentru fiecare rând în timpul despachetării pachetelor RLE.

Origini istorice și repere

1998TGA a devenit frecvent în fluxurile de lucru pentru jocuri, deoarece acceptă date directe de culoare și alfa; motoare de jocuri, inclusiv Quake II de la id Software, l-au folosit pentru texturi.
1989Truevision lansează formatul de fișier TGA v2.0, adăugând subsolul standardizat de 26 de octeți 'TRUEVISION-XFILE'.
1984Truevision introduce placa video TARGA (Truevision Advanced Raster Graphics Adapter) și formatul TGA.

Avantaje cheie și beneficii

  • Arhitectura de decodare extrem de simplă permite încărcarea directă în memoria de texturi a GPU-ului cu un efort minim din partea procesorului.
  • TGA poate stoca date RGB pe 24 de biți sau RGBA pe 32 de biți, inclusiv canalul alfa, fiind util în unele fluxuri de lucru pentru texturi, sprite-uri și decalcomanii de jocuri.
  • Suportă atât date necomprimate, cât și compresie RLE fără pierderi, de dimensiuni reduse.

Limitări tehnice și dezavantaje

  • Amprente de fișier mai mari decât formatele moderne de texturi comprimate precum DDS, KTX2 sau PNG.
  • Lipsește managementul nativ al profilului de culoare (fără profiluri ICC încorporate).
  • Fișierele TGA originale v1.0 nu au un octet magic standardizat la octetul 0 (identificat prin câmpurile antetului și subsol).

Curiozități tehnice interesante

  • TGA a fost creat pentru a captura cadre video de televiziune pe un PC IBM înainte ca monitoarele PC standard să poată afișa măcar culori pe 24 de biți.
  • Fișierele TGA 2.0 sunt unice deoarece semnătura lor magică ('TRUEVISION-XFILE.') este stocată chiar la sfârșitul fișierului în loc de început.
  • Unele motoare de jocuri din anii 1990 au folosit TGA pentru texturi, inclusiv jocuri de la id Software și Valve.

Întrebări tehnice frecvente

De ce au iubit dezvoltatorii de jocuri formatul TGA?

Deoarece fișierele TGA erau necomprimate sau foloseau RLE simplu, permițând motoarelor de joc să încarce texturi pe 32 de biți și transparență alfa direct în memoria video fără o decompresie lentă.

Cum identific un fișier TGA fără octeți de identificare la octetul 0?

Fișierele TGA 2.0 moderne se termină cu șirul ASCII „TRUEVISION-XFILE.” în ultimele 26 de octeți ai fișierului.

Cum pot converti TGA în PNG?

Fișierele TGA pot conține un canal alfa folosit de texturile jocurilor. Convertește-le în PNG pentru a păstra transparența sau în JPEG pentru o imagine opacă mai mică; acest convertor rulează în browserul tău.