Truevision TGA (.tga)

Truevision Стандарт

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

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

Безкоштовний конвертер з TGA у PNG у браузері. Миттєво конвертуйте файли на своєму пристрої.

Аналіз та метадані

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

Виберіть або перетягніть файли сюди

Приватно - файли ніколи не залишають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності без передавання даних мережею: Жодного байта не передано на зовнішні сервери. Уся обробка відбувалася локально в ізольованому середовищі браузера.

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

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

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):

Фіксованої сигнатури немає

ПОДАННЯ В ASCII: Фіксованої сигнатури немає

Стандартизація: Truevision TGA File Format Specification 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
Використання для текстур у відеоіграхВикористовувався деякими ігровими рушіями у 1990: 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) неправильно прочитані або інвертовані декодером.

Відновлення: Перемкніть прапорці вертикального/горизонтального відбиття або виконайте конвертацію за допомогою конвертера TGA у File2File.app.

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

Декодери TGA обробляють потокові дані RLE на основі пакетів; пошкоджені лічильники серій можуть спричинити запис за межі динамічної пам’яті.

Відомі вектори атак

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

Рекомендації щодо захисту: Застосовуйте сувору перевірку меж для кожного рядка розгортки під час розпакування пакетів RLE.

Історичне походження та віхи

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

Основні переваги

  • Надзвичайно проста архітектура декодування забезпечує пряме завантаження текстур у пам'ять GPU з мінімальним навантаженням на CPU.
  • TGA може зберігати 24-бітні дані RGB або 32-бітні RGBA, зокрема альфа-канал, тому був корисним у деяких процесах роботи з ігровими текстурами, спрайтами й декалями.
  • Підтримує як нестиснене, так і легке RLE-стиснення без втрат.

Технічні обмеження та недоліки

  • Більший розмір файлів порівняно з сучасними форматами стиснених текстур, такими як DDS, KTX2 або PNG.
  • Бракує вбудованого керування колірними профілями (немає вбудованих профілів ICC).
  • В оригінальних файлах TGA v1.0 відсутній стандартизований магічний байт у байті 0 (їх визначають за полями заголовка та футером).

Цікаві технічні факти

  • Формат TGA був створений для захоплення кадрів телевізійного відео на комп'ютерах IBM PC ще до того, як стандартні монітори ПК могли відображати 24-бітний колір.
  • Файли TGA 2.0 унікальні тим, що їхній сигнатурний підпис ('TRUEVISION-XFILE.') зберігається в самому кінці файлу, а не на початку.
  • TGA використовували для текстур деякі ігрові рушії 1990-х років, зокрема в іграх від id Software і Valve.

Поширені технічні запитання

Чому розробники ігор любили формат TGA?

Тому що файли TGA були нестисненими або використовували простий алгоритм RLE, що дозволяло ігровим рушіям завантажувати 32-бітні текстури та альфа-прозорість безпосередньо у відеопам'ять без повільної декомпресії.

Як ідентифікувати файл TGA без магічних байтів у нульовому байті?

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

Як я можу конвертувати TGA у PNG?

Файли TGA можуть містити альфа-канал, який використовують у текстурах ігор. Перетворіть на PNG, щоб зберегти прозорість, або на JPEG для меншого непрозорого зображення; конвертер працює у браузері.