Truevision TGA (.tga)
Спецификация СтандартTGA (Targa) е растерен формат, свързан с платките за видеозаснемане TARGA на Truevision и използван в някои работни потоци за графика и игрови ресурси, особено през 90-те и 2000-те години.
Конвертиране от TGA към PNG
Безплатен конвертор от TGA към PNG в браузъра. Конвертирайте файлове незабавно на вашето устройство.
Проверка и метаданни
Операционните системи и файловите анализатори идентифицират TGA файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на заглавката (сигнатурни байтове)
Операционните системи и файловите анализатори идентифицират 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 (Текущ) | PNG | BMP | DDS |
|---|---|---|---|---|
| Употреба за текстури в игри | Използва се от някои игрови енджини през 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 данни.
Исторически произход и етапи
Основни предимства
- Изключително простата архитектура за декодиране позволява директно зареждане в паметта за текстури на графичния процесор с минимално натоварване на процесора.
- 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, ако ви е нужен по-малък непрозрачен файл; конверторът работи в браузъра ви.
Свързани двойки за конвертиране на TGA
Декодирайте 24-битови и 32-битови текстури от игри и растерни графики Truevision TGA в универсален PNG формат без загуба на качество.
Преобразувайте TGA текстура или спрайт в PDF от една страница за преглед на дизайна. Страницата показва декодирани пиксели, а не редактируеми TGA данни или кодиране на пакети.