Truevision TGA (.tga)

Спецификация Стандарт

TGA (Targa) е растерен формат, свързан с платките за видеозаснемане TARGA на Truevision и използван в някои работни потоци за графика и игрови ресурси, особено през 90-те и 2000-те години.

Конвертиране от TGA към PNG

Безплатен конвертор от TGA към PNG в браузъра. Конвертирайте файлове незабавно на вашето устройство.

Проверка и метаданни

Операционните системи и файловите анализатори идентифицират TGA файлове чрез проверка на началната двоична байтова последователност:

Изберете или пуснете файлове тук

Поверително - файловете никога не напускат устройството ви

или поставете Ctrl+V
Гаранция за поверителност с нулево мрежово предаване: 0 байта са качени на външни сървъри. Цялата обработка се извършва локално в пясъчниците на вашия браузър.

Байтов подпис на заглавката (сигнатурни байтове)

Операционните системи и файловите анализатори идентифицират TGA файлове чрез проверка на началната двоична байтова последователност:

HEX ПОДПИС (ОФСЕТ 0):

Няма фиксиран подпис (полета в заглавната част на TGA варират)

ASCII ПРЕДСТАВЯНЕ: Няма фиксиран подпис

Стандартизация: Спецификация на файловия формат Truevision TGA v2.0

Технически спецификации

Контейнерна архитектураФиксирана заглавна част от 18 байта, последвана от идентификатор на изображението, цветова карта, растерни данни и незадължителен долен колонтитул v2.0
КомпресияНекомпресирани сурови редове за сканиране или беззагубно пакетно кодиране на дължини на серии (RLE)
Поредност на байтовете (Endianness)Ред от младшия към старшия байт (Little-Endian, Intel x86).
Цветови пространстваRGB, зависим от устройството
Канали и структура8-битова скала на сивото, 16-битов RGB (5-5-5-1), 24-битов RGB или 32-битов RGBA с алфа канал
Максимални размери65 535 x 65 535 пиксела (16-битови полета за размерите)
ПрозрачностПълен 8-битов алфа канал (в 32-битов режим) или 1-битов алфа канал (в 16-битов режим)
Поточно предаване и прогресивно зарежданеПоследователно поточно предаване на редовете за сканиране; поддържа ориентация отгоре надолу или отдолу нагоре

Техническа сравнителна матрица: TGA спрямо конкуренти

Технически атрибутTGA (Текущ)PNGBMPDDS
Употреба за текстури в игриИзползва се от някои игрови енджини през 90-те и 2000-те годиниМодерни 2D потребителски интерфейси и уеб активиНаследен файлов битмап на WindowsМодерен компресиран GPU формат на DirectX
Поддръжка на алфа каналПълен 8-битов алфа канал (32-битов режим)Пълен 8-битов алфа каналОграничен 32-битов алфа каналКомпресиран с DXT/BC алфа канал
Алгоритъм за компресияНекомпресиран или пакетен RLEКомпресия Deflate без загуби; спестяването на място зависи от съдържанието на изображениетоНекомпресиран / RLEДиректна блокова компресия за GPU (BC1-BC7)
Местоположение на подписа26-байтов долен колонтитул ('TRUEVISION-XFILE.')Заглавна част (хедър) на байт 0 ('‰PNG....')Заглавна част на байт 0 ('BM')Заглавна част на байт 0 ('DDS ')

Често срещани видове повреди и ръководство за възстановяване на шестнадесетични данни

Изображението се изобразява с главата надолу или огледално хоризонтално.

Първопричина: Бийтовете на дескриптора на изображението (битове 4 и 5 в байт 17) са погрешно прочетени или инвертирани от декодера.

Възстановяване: Превключете флаговете за вертикално/хоризонтално обръщане или конвертирайте с помощта на File2File.app TGA Converter.

Анализ на сигурността и вектори на атака към парсера

Декодерите на TGA обработват пакетни RLE потоци, в които невалидни стойности за дължината на поредицата (run-length) могат да предизвикат запис извън границите на динамичната памет.

Известни вектори на атака

  • Дължината на RLE пакета надвишава границата на буфера за целевия ред от пиксели.
  • Препълване на буфера при четене на записи от цветовата палитра, надвишаващи декларираната дълбочина на палитрата.
  • Целочислено препълване по време на разпределението на паметта в буфера width * height * (bpp / 8).

Най-добри практики за защита: Извършвайте строга проверка на границите за всеки растерен ред при разпакетирането на RLE данни.

Исторически произход и етапи

1998Форматът TGA се използва широко в работните процеси за създаване на графика за игри, защото поддържа директни цветови и алфа данни; сред игровите енджини, използвали го за текстури, е Quake II на id Software.
1989Truevision издава TGA File Format v2.0, добавяйки стандартизирания 26-байтов долен колонтитул 'TRUEVISION-XFILE'.
1984Truevision представя видеоплатката TARGA (Truevision Advanced Raster Graphics Adapter) и формата TGA.

Основни предимства

  • Изключително простата архитектура за декодиране позволява директно зареждане в паметта за текстури на графичния процесор с минимално натоварване на процесора.
  • TGA може да съхранява 24-битови RGB или 32-битови RGBA данни, включително алфа канал, което го прави полезен в някои работни потоци за игрови текстури, спрайтове и декали.
  • Поддържа както некомпресирана, така и лека беззагубна RLE компресия.

Технически ограничения и минуси

  • По-голям размер на файловете в сравнение с модерни компресирани формати за текстури като DDS, KTX2 или PNG.
  • Липса на вградено управление на цветовите профили (няма вградени ICC профили).
  • В оригиналните TGA v1.0 няма стандартизиран магически байт в позиция 0 (файловете се разпознават по полетата в заглавната част и долния колонтитул).

Интересни технически факти

  • TGA е създаден за заснемане на телевизионни видео кадри на IBM PC, преди стандартните компютърни монитори дори да могат да показват 24-битов цвят.
  • TGA 2.0 файловете са уникални, защото техният идентификационен подпис ('TRUEVISION-XFILE.') се съхранява в самия край на файла вместо в началото.
  • Някои игрови енджини от 90-те години, включително игри на id Software и Valve, използват TGA за текстури.

Често задавани технически въпроси

Защо разработчиците на игри харесваха TGA формата?

Защото TGA файловете бяха некомпресирани или използваха опростен RLE метод, което позволяваше на двигателите на игрите да зареждат 32-битови текстури и алфа прозрачност директно във видео паметта без бавна декомпресия.

Как да разпозная TGA файл без магически байтове на байт 0?

Модерните TGA 2.0 файлове завършват с ASCII низа 'TRUEVISION-XFILE.' в последните 26 байта на файла.

Как мога да конвертирам TGA в PNG?

Файловете TGA може да съдържат алфа канал, използван в игровите текстури. Конвертирайте в PNG, за да запазите прозрачността, или в JPEG, ако ви е нужен по-малък непрозрачен файл; конверторът работи в браузъра ви.