Изображение TGA (.tga)

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

TGA (Targa), растровый формат, связанный с платами видеозахвата TARGA компании Truevision; он использовался в некоторых рабочих процессах с графикой и игровыми ресурсами, особенно в 1990-х и 2000-х годах.

Конвертировать из TGA в PNG

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

Анализ и метаданные

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

Выберите или перетащите файлы сюда

Конфиденциально - файлы никогда не покидают ваше устройство

или вставьте Ctrl+V
Гарантия конфиденциальности без передачи по сети: 0 байт загружено на внешние серверы. Вся обработка выполнялась локально в песочнице Вашего браузера.

Сигнатура заголовка на уровне байтов (Magic Bytes)

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

HEX-СИГНАТУРА (СМЕЩЕНИЕ 0):

Фиксированной сигнатуры нет (поля заголовка TGA различаются).

ПРЕДСТАВЛЕНИЕ ASCII: Фиксированной сигнатуры ASCII нет.

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

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

Архитектура контейнераФиксированный заголовок длиной 18 байт, за которым следует идентификатор изображения, палитра цветов, данные растровых пикселей и опциональный нижний колонтитул версии 2.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
Использование для текстур в играхУниверсальный стандарт 1990-х и 2000-х годов, ныне устаревшийСовременные ресурсы для 2D-интерфейсов и вебаУстаревшая растровая графика WindowsСовременный сжатый формат GPU от DirectX
Поддержка альфа-каналаЧистая 8-битная альфа (32-битный режим)Чистая 8-битная альфаОграниченная 32-битная альфаСжатая альфа DXT/BC
Алгоритм сжатияНесжатый или пакетный RLEБез потерь Deflate (меньше примерно на 60%)Без сжатия / RLEПрямое блочное сжатие GPU (BC1-BC7)
Расположение сигнатуры26-байтовый колонтитул ('TRUEVISION-XFILE.')Заголовок байта 0 ('‰PNG....')Заголовок байта 0 ('BM')Заголовок байта 0 ('DDS ')

Распространенные сценарии повреждения и руководство по восстановлению в HEX

Изображение перевернуто по вертикали или зеркально отражено по горизонтали.

Первопричина: Биты дескриптора изображения (биты 4 и 5 в байте 17) неправильно прочитаны или инвертированы декодером.

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

Анализ безопасности и векторы атак на парсер

Декодеры TGA обрабатывают пакетные потоки RLE, где искаженные значения длины серий могут вызывать запись в кучу за пределами допустимых границ.

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

  • Длина пакета RLE превышает границу буфера целевой строки сканирования.
  • Переполнение буфера при чтении элементов цветовой палитры, превышающих заявленную глубину палитры.
  • Переполнение целых чисел при выделении буфера памяти ширина * высота * (глубина пикселя / 8).

Лучшие практики защиты: Применяйте строгую проверку границ для каждой строки сканирования при распаковке пакетов RLE.

История происхождения и ключевые этапы

1998Игра Half-Life от Valve и Quake II от id Software популяризируют TGA в качестве стандартного формата текстурных ресурсов для видеоигр.
1989Truevision выпускает спецификацию формата файлов TGA v2.0, добавляя стандартизированный 26-байтовый нижний колонтитул 'TRUEVISION-XFILE'.
1984Truevision представляет видеоадаптер TARGA (Truevision Advanced Raster Graphics Adapter) и формат TGA.

Ключевые преимущества и плюсы

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

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

  • Больший размер файлов по сравнению с современными форматами сжатых текстур, такими как DDS, KTX2 или PNG.
  • Отсутствие нативного управления цветовыми профилями (нет встроенных профилей ICC).
  • Оригинальные файлы TGA версии 1.0 не имеют стандартизированного сигнатурного байта в нулевой позиции (определяются по полям заголовка и нижнего колонтитула).

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

  • Формат TGA был создан для захвата кадров телевизионного вещания на ПК IBM до того, как стандартные мониторы ПК вообще могли отображать 24-битный цвет.
  • Файлы TGA 2.0 уникальны тем, что их сигнатурная строка ('TRUEVISION-XFILE.') хранится в самом конце файла, а не в начале.
  • Почти каждый крупный игровой 3D-движок 1990-х годов, от id Tech до Unreal Engine, загружал текстурные ресурсы напрямую из файлов .TGA.

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

Почему разработчики игр любили формат TGA?

Потому что файлы TGA были несжатыми или использовали простой алгоритм RLE, что позволяло игровым движкам загружать 32-битные текстуры и альфа-прозрачность прямо в видеопамять без медленной распаковки.

Как идентифицировать файл TGA без сигнатурных байтов на нулевой позиции?

Современные файлы TGA 2.0 заканчиваются строкой ASCII 'TRUEVISION-XFILE.' в последних 26 байтах файла.

Как конвертировать TGA в PNG?

Вы можете конвертировать текстуры TGA в высококачественные изображения PNG или JPG прямо в своем браузере с помощью File2File.app без передачи данных.