Основы форматов

Что такое TGA: гид по формату Truevision Targa с альфа-каналом

Вам прислали картинку с расширением .tga, а Windows показывает белую иконку и отказывается её открывать. Что это за зверь из 1980-х, почему он до сих пор встречается в играх и графике и зачем формату с тех времён уже был альфа-канал — разбираемся с нуля и без занудства.

Неоновый игровой геймпад светится над тёмной листвой — TGA родом из мира графики и игр
TGA придумали для графических плат, а прижился он в играх и 3D. Фото: Pexels

Что такое TGA простыми словами

TGA (Truevision Targa) — это растровый формат изображений, то есть картинка в нём хранится как сетка из пикселей, у каждого свой цвет. По сути TGA — близкий родственник BMP: оба максимально честно перечисляют пиксели один за другим и не пытаются хитро их сжимать. Зато TGA умеет две важные вещи, которых у старого BMP не было: полноценную прозрачность и лёгкое сжатие без потерь.

Главная идея формата — простота и честность. TGA не выбрасывает детали ради размера файла (как это делает JPEG) и не закапывает данные в сложную структуру. Открыл файл, прочитал короткий заголовок, дальше идут пиксели — вот и весь формат. Именно за эту прямоту его полюбили художники и разработчики игр: TGA предсказуем, и с ним почти невозможно «случайно испортить картинку».

Коротко

TGA — это «честный» формат: пиксели хранятся без потерь, есть прозрачность (альфа-канал), а сжатие либо отсутствует, либо очень простое. Минус один — файлы крупные, и почти ни один просмотрщик их «из коробки» не открывает.

Откуда взялся формат: 1984 год и платы Targa

TGA — настоящий долгожитель. Формат определили ещё в 1984 году в подразделении AT&T EPICenter при участии компании Island Graphics. Расшифровок у названия две, и обе про железо: TARGA — это Truevision Advanced Raster Graphics Adapter, а TGATruevision Graphics Adapter.

Дело в том, что формат родился не сам по себе, а как «родной язык» конкретных видеоплат — Targa и Vista. Это были одни из первых графических карт для IBM PC, которые умели показывать true color (полноцветное изображение) в те времена, когда обычные ПК довольствовались 16 цветами. Платы использовались для профессиональной работы с видео, поэтому размеры TGA-картинок часто совпадали с тогдашними телевизионными стандартами (NTSC и PAL — форматы кадра в США и Европе).

В 1987 году команда выкупила технологию у AT&T и образовала компанию Truevision. А в 1989 году вышла версия 2.0 (её сделал Шон Стайнер): она добавила в конец файла небольшой блок служебной информации — дату, имя автора, маленькую картинку-превью и особую метку, по которой формат можно узнать. Об этом «хвосте» мы подробно расскажем в отдельной статье про внутреннее устройство TGA.

Две видеокарты NVIDIA крупным планом — наследники тех самых плат, для которых создавали TGA
Сегодняшние видеокарты — далёкие потомки плат Targa и Vista, ради которых и придумали формат. Фото: Pexels

Как устроен файл TGA внутри

Структура TGA подкупает своей логичностью. Файл начинается с заголовка длиной всего 18 байт. В нём записано самое необходимое: ширина и высота картинки, глубина цвета (сколько бит на пиксель), тип изображения и наличие палитры. Любопытная деталь: в отличие от PNG или JPEG, у TGA нет «волшебной» сигнатуры в начале файла — самый первый байт это просто длина необязательного текстового описания. Поэтому распознать TGA по первым байтам сложнее, чем большинство форматов.

Сразу за заголовком идут пиксели — в том порядке, который указан в заголовке. Никаких чанков, контрольных сумм и сложных деревьев, как в PNG. Эта прямолинейность — и сила, и слабость TGA: читать его легко, но и весит он обычно много.

Полное имя
Truevision TGA (Targa)
Расширения
.tga, .icb, .vda, .vst
Год создания
1984
Разработчик
AT&T EPICenter / Truevision
Глубина цвета
8 / 16 / 24 / 32 бит
Прозрачность
Да (альфа-канал)
Сжатие
Нет или RLE (без потерь)
Анимация
Нет

Альфа-канал: прозрачность до эпохи PNG

Вот чем TGA реально опередил своё время. В 32-битном TGA на каждый пиксель приходится 4 байта: три на цвет (красный, зелёный, синий) и один — на альфа-канал, то есть прозрачность. Это даёт 256 уровней прозрачности на каждый пиксель: от полностью видимого до полностью невидимого и любые промежуточные значения.

Звучит обыденно сегодня, но в 1980–90-е это было редкостью. PNG, который мы привыкли считать «форматом с прозрачностью», появился только в 1996 году — на десяток с лишним лет позже. Поэтому когда дизайнерам и видеомонтажёрам нужна была плавная прозрачность — например, чтобы наложить логотип или спецэффект поверх кадра, — TGA часто был единственным доступным вариантом.

TGA умел плавную прозрачность ещё тогда, когда большинство компьютеров не показывали даже больше 256 цветов.

Сжатие RLE: без потерь и очень просто

TGA можно сохранить двумя способами. Первый — совсем без сжатия (в спецификации это «тип 2»): каждый пиксель записан как есть. Второй — со сжатием RLE (Run-Length Encoding, «тип 10»). RLE — это, пожалуй, самый интуитивный способ сжатия из всех существующих.

Идея проста: если в строке подряд идут одинаковые пиксели, незачем записывать каждый отдельно. Вместо «синий, синий, синий, синий, синий» формат пишет «синий ×5». Поэтому на простой графике с большими однотонными областями — иконках, логотипах, скриншотах интерфейса — RLE заметно ужимает файл. А вот на фотографиях, где почти нет двух одинаковых пикселей рядом, выигрыша почти нет. Важно одно: RLE — сжатие без потерь, картинка восстанавливается точь-в-точь.

Объёмные кубики выстроены сеткой — наглядная метафора пикселей и блоков в растровом изображении
Растровое изображение — это сетка пикселей. RLE экономит место там, где соседние пиксели одинаковы. Фото: Pexels
1984год появления формата
18байт в заголовке
32бита на пиксель с альфой

Где TGA используется сегодня

Несмотря на солидный возраст, TGA не музейный экспонат. Он до сих пор живёт там, где ценят простоту и предсказуемость:

  • Игровые текстуры. Unreal Engine и Unity отлично понимают TGA; долгие годы он был стандартом для текстур с прозрачностью. Подробнее — в статье «TGA в играх и графике».
  • Видео и спецэффекты. В видеопроизводстве кадры нередко выгружают последовательностью TGA-файлов — это надёжно и без потерь.
  • 3D и рендеринг. Многие 3D-редакторы сохраняют промежуточные результаты в TGA как «рабочий» формат.

Если хочется сравнить TGA с современными форматами и понять, когда он всё ещё уместен, загляните в разбор «TGA против PNG».

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

Главная боль обычного пользователя: TGA почти никто не открывает. Браузеры его не показывают, стандартный просмотрщик Windows тоже. Самое простое решение — конвертировать TGA в PNG: PNG понимает любая программа и любой браузер, при этом он тоже без потерь и тоже умеет прозрачность, так что качество и альфа-канал сохранятся.

1

Загрузите файл

Перетащите .tga в онлайн-конвертер — устанавливать ничего не нужно.

2

Выберите PNG

PNG сохранит альфа-канал из TGA, если он есть.

3

Скачайте результат

Готовый PNG открывается где угодно — в браузере, Photoshop, GIMP или штатном просмотрщике.

Откройте свой TGA прямо сейчас

Бесплатный конвертер FormatZ превратит .tga в PNG за пару секунд — прямо в браузере, без установки и регистрации, с сохранением прозрачности.

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

Нужно наоборот — собрать TGA из обычной картинки для движка или видеомонтажа? Пригодится обратное преобразование PNG в TGA. А полный список конвертаций всегда есть на странице всех форматов.

TGA расшифровывается как Truevision Graphics Adapter, а второе имя формата, TARGA, — это Truevision Advanced Raster Graphics Adapter. Так назывались платы захвата и вывода изображения, для которых формат и придумали в 1984 году.
Нет. TGA всегда хранит пиксели без потерь. Файл может быть совсем несжатым (тип 2) или сжатым простым алгоритмом RLE (тип 10), но в обоих случаях картинка восстанавливается байт в байт — артефактов, как у JPEG, здесь не бывает.
Да. В 32-битном TGA есть полноценный 8-битный альфа-канал — 256 уровней прозрачности на пиксель. Это и стало причиной популярности формата в графике: TGA умел плавную прозрачность ещё до того, как появился PNG.
Оба формата без потерь и оба поддерживают альфа-канал. Но PNG сжимает сильнее и понятен любому браузеру, а TGA проще устроен, чаще остаётся несжатым и потому крупнее. TGA — рабочий формат графики и игр, PNG — формат для публикации и веба. Подробнее — в статье TGA против PNG.
Большинство просмотрщиков и браузеров TGA не открывают. Проще всего конвертировать TGA в PNG — например, в онлайн-конвертере FormatZ, — после чего файл откроется в любом редакторе и просмотрщике.