Просмотры

TGA

Материал из Wiki

Перейти к: навигация, поиск

Truevision TGA (TGA) — растровый графический формат. Первоначально был создан компанией Truevision Inc. для графических адаптеров собственного производства ещё в 1984, но в дальнейшем стал популярен на самых разных платформах, особенно в области обработки видео, анимации.

Обычно файлы этого формата имеют расширение .tga в системах, следующих традициям DOS, или .tpic на компьютерах Macintosh. Формат поддерживает глубину цвета 1—32 бита на пиксель. Есть поддержка альфа-каналов, сжатия RLE.

Содержание

Обзор структуры файла

Файл изображения TGA состоит из пяти зон, каждая из которых содержит одно или больше полей фиксированной или переменной длины:

  • (1) Заголовок файла
  • (2) Изображение/карта цветов
  • (3) Зона разработчика
  • (4) Зона расширения
  • (5) Подвал

Последние три зоны были добавлены в спецификацию формата в сентябре 1989 г. По этой причине файлы, созданные при помощи ПО, написанного до этой даты, могут не содержать этих зон. Чтобы определить, относится ли файл к оригинальной версии или к новой, следует считать последние 26 байт файла. Для новой версии эти байты будут содержать подвал файла, байты 8-23 которого содержат набор ASCII символов «TRUEVISION-XFILE». Наличие этой строки означает, что файл может содержать зоны (3) и (4).

Сам подвал имеет следующее строение (байт — назначение):

  • 0-3 — Смещение зоны расширения
  • 4-7 — Смещение списка зон разработчика
  • 8-23 — Подпись файла нового формата
  • 24 — ASCII символ '.'
  • 25 — Нулевой байт

Более подробное описание в конце статьи.

Заголовок файла

Длина идентификатора (1 байт)

Указывает количество байт, содержащихся в поле Идентификатор. Максимальное количество символов — 255. Нулевое значение указывает, что файл не содержит поле Идентификатор.


Тип карты цветов (1 байт)

Указывает тип карты цветов, включенной в файл. На данный момент(описание от января 1991г) определено два значения — 0(файл не содержит карты цветов) и 1(файл содержит карту цветов). Первые 128 значений этого поля зарезервированы для использования Truevision, остальные могут быть использованы разработчиками ПО.

True-Color изображения обычно не используют карту цветов, но некоторые приложения сохраняют информацию о палитре или другие данные в этом поле. Рекомендуется проверять значение поля Тип Изображения(описано в следующем пункте), чтобы убедиться что файл может использовать эти данные. В противном случае это поле можно игнорировать.

При записи или сохранении файла в целях совместимости следует заполнять это поле нулевыми значениями. В новом формате файла для сохранения данных разработчика существует отдельная зона.


Тип Изображения (1 байт)

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

Значение Описание Используется карта цветов Используется сжатие
0 Нет изображения Нет Нет
1 Изображение с палитрой Да Нет
2 TrueColor изображение Нет Нет
3 Монохромное изображение Нет Нет
9 Изображение с палитрой Да Да
10 TrueColor изображение Нет Да
11 Монохромное изображение Нет Да

Первые 128 значений зарезервированы для использования Truevision, остальные могут быть использованы разработчиками.

Описание карты цветов (5 байт)

Это поле и его подразделы описывают карту цветов (если она используется). Если поле Color Map Type(описано выше) содержит ноль, эти пять байт также должны содержать нули.

  • Индекс первого элемента — 2 байта

Указывает на начальный элемент палитры.

  • Длина карты цветов — 2 байта

Указывает количество элементов палитры.

  • Размер элемента карты цветов — 1 байт

Количество бит на один элемент палитры. Обычно используются значения 15, 16, 24 или 32.


Описание изображения (10 байт)

Это поле описывает размеры, положение на эране и глубину пикселя изображения.

  • Положение изображения по оси X — 2 байта

Определяет абсолютную координату левого нижнего угла изображения по горизонтали.

  • Положение изображения по оси Y — 2 байта

Определяет абсолютную координату левого нижнего угла изображения по вертикали.

  • Ширина изображения — 2 байта

Ширина изображения в пикселях.

  • Высота изображения — 2 байта

Высота изображения в пикселях.

  • Глубина цвета — 1 байт

Определяет количество бит на пиксель.

  • Описатель изображения — 1 байт

Биты 3-0 этого поля определяют количество атрибутивных бит на пиксель. Биты 5 и 4 определяют порядок передачи пиксельных данных из файла на экран. Бит 4 устанавливается для порядка «слева направо», бит 5 — для порядка «сверху вниз». Биты 7 и 6 в целях совместимости должны быть установлены в 0.

Изображение/карта цветов

Идентификатор (переменная длина)

Это поле является идентификатором файла и может иметь длину от 0 до 255 байт.

Данные карты цветов (переменная длина)

Если Тип Карты Цветов(описано выше) содержит ноль, это поле будет отсутствовать. Поля Размер элемента карты цветов и Длина карты цветов позволяют определить размер этого поля. Каждый элемент карты цветов занимает целое число байт; каждый цветовой канал занимает MIN(Размер элемента карты цветов/3 , 8) бит, то есть для размера элемента в 24 каждый из трех каналов цвета займет 8 бит, так же, как и для элементов размером 32 бита.

Данные изображения (переменная длина)

Это поле содержит (ширина*высота) пикселей. Каждый пиксель указывает данные изображения в одном из следующих форматов: одиночный индекс элемента карты цветов, отдельные значения для каждого канала цвета либо отдельные индексы интенсивности для формата Direct Color.

Зона разработчика (переменная длина)

Эта зона может иметь любой размер и содержать любой тип информации на усмотрение разработчика ПО, хотя рекомендуется использовать ее исключительно для хранения специфичной информации, не предназначенной для остального ПО и не описанной в спецификации формата. Так как файл может содержать более одной зоны разработчика, существует список зон, содержащий «карту» полей, включенных в эти зоны. В байтах 4-7 Подвала файла содержится смещение от начала файла к началу списка зон разработчика. Если эти байты содержат нулевое значение, списка зон и самих зон в файле нет.

Список зон разработчика

  • Количество тэгов (2 байта)

Указывает количество тэгов, содержащихся в списке. Остальная часть списка после этого значения содержит последовательности тэг-смещение-размер.

  • Тэг (2 байта)

Каждый тэг может содержать значение от 0 до 65535. Значения 0-32767 могут быть использованы разработчиками, остальные зарезервированы для использования Truevision.

  • Смещение (4 байта)

Содержит значение, указывающее смещение от начала файла к началу поля, на которое ссылается тэг.

  • Размер (4 байта)

Указывает размер поля, на которое ссылается тэг.

Зона расширения

Смещение к Зоне расширения хранится в Подвале файла. Если смещение равно нулю — файл не содержит зоны расширения.

Размер зоны расширения (2 байта)

Содержит длину зоны в байтах. Для версии 2.0 формата это значение должно быть равным 495.

Имя автора (41 байт)

Место для ASCII строки длиной до 40 символов и одного нулевого байта. Если поле не используется, оно заполняется нулями или пробелами. Последний символ всегда должен быть равен нулю.

Комментарий автора (324 байта)

Место для четырех строк, каждая из которых может вместить нулевой байт и до 80 значащих символов. Неиспользуемое место заполняется нулями либо пробелами, 81-й байт каждой строки должен быть равен нулю.

Дата/Время (12 байт)

Это поле содержит последовательность из шести 2-х байтовых значений для даты и времени сохранения изображения (месяц-день-год-час-минуты-секунды). Если это поле не используется, оно заполняется нулями.

Job name/ID (41 байт)

Место для 40 ASCII символов и одного нулевого байта.

Job time (6 байт)

Аналогично полю Дата/Время, место для хранения трех значений (час-минута-секунда).

ID ПО (41 байт)

Место для строки-идентификатора ПО, с помощью которого был создан файл.

Версия ПО (3 байта)

Поле содержит две составные части — 2-х байтное число и ASCII символ. Место для сохранения версии ПО, с помощью которого был создан файл.

Ключевой цвет (4 байта)

4-х байтное значение, определяющее ключевой цвет альфа канала в формате ARGB. Если изображение не содержит альфа канала, значение первого байта устанавливается в ноль. Ключевой цвет определяет цвет фона или «прозрачный цвет». Если поле не используется, оно заполняется нулями.

Соотношение сторон пикселя (aspect ratio) (4 байта)

Содержит два 2-х байтных значения, определяющих ширину и высоту пикселя соответственно. Одинаковые ненулевые значения определяют квадратный пиксель, ноль во втором значении означает, что соотношение не указано.

Гамма (4 байта)

Содержит два 2-х байтных значения, используемых в качестве числителя и знаменателя при вычислении дробного значения гаммы. Результат деления должен находиться в диапазоне от 0 до 10.0 и иметь только один знак в дробной части. Когда это поле не используется, оба значения должны быть равны друг другу(дабы получить 1.0 после деления), либо второе значение должно быть равно нулю.

Смещение Коррекция Цвета (4 байта)

Содержит смещение в байтах от начала файла к таблице коррекции. Таблица может быть помещена в любом месте после поля Данных Изображения и перед Подвалом файла. Если изображение не требует коррекции, это значение равно нулю.

Смещение Postage Stamp (4 байта)

Содержит смещение к уменьшенной копии изображения, содержащегося в файле. Изображение записывается между Таблицей Скан Линий(описано ниже) и Подвалом файла.

Смещение Скан Линий (4 байта)

Смещение к началу таблицы Скан Линий.

Тип Атрибутов (1 байт)

Это значение определяет тип данных альфа канала, сохраненных с изображением.

  • 0 — нет альфа канала
  • 1 — неопределенные данные в альфа канале, могут быть проигнорированы
  • 2 — неопределенные данные в альфа канале, должны быть сохранены
  • 3 — полноценный альфа канал в наличии
  • 4 — предумноженный альфа канал(значения цветов уже помножены на значения в альфа канале)
Pre-multiplied Alpha Example: Suppose the Alpha channel data is being used to specify the opacity of each pixel (for use when the image is overlayed on another image), where 0 indicates that the pixel is completely transparent and a value of 1 indicates that the pixel is completely opaque (assume all component values have been normalized). A quadruple (a, r, g, b) of (0.5, 1, 0, 0) would indicate that the pixel is pure red with a transparency of one-half. For numerous reasons (including image compositing) is is better to pre-multiply the individual color components with the value in the Alpha channel. A pre-multiplication of the above would produce a quadruple (0.5, 0.5, 0, 0). A value of 3 in the Attributes Type Field (field 23) would indicate that the color components of the pixel have already been scaled by the value in the Alpha channel. For more information concerning pre-multiplied values, refer to the 1984 SIGGRAPH Conference Proceedings.

Таблица Скан Линий

Таблица должна содержать набор смещений в байтах от начала файла к началам скан линий, в соответствующем порядке (например сверху вниз/снизу вверх).

Изображение Postage Stamp

Уменьшенная копия изображения, содержащегося в файле. Сохраняется в том же формате, что и полноразмерное, но без применения методов сжатия. Первый байт содержит ширину копии в пикселях, второй — высоту. Truevision не рекомендует использовать изображения размером больше чем 64Х64 пикселя.

Таблица Коррекции Цвета (2 КБ)

Таблица содержит 256Х4 2-х байтных значений, каждая последовательность из четырех таких значений соответствует каналам ARGB.

Подвал

  • Смещение в байтах от начала файла к зоне расширения (4 байта).
  • Смещение к списку зон разработчика (4 байта).
  • Сигнатура новой версии файла (ASCII строка «TRUEVISION-XFILE.\0»).

Предпоследний символ сигнатуры должен быть символом «.»(period), иначе файл не будет опознан как правильный файл TGA.

Разработчик не обязан читать, записывать или использовать зоны расширения или разработчика, но, даже когда они не используются, рекомендуется включать в файл Подвал и указывать в качестве смещений к неиспользуемым зонам нули.

Ссылки

Спецификация (HTML, без изображений)

Спецификация (в формате PDF)

Загрузка .tga



Графические форматы
Растровые: BMPGIFICOILBMJPEGJPEG 2000PCXPNGPSDTGATIFFHD Photo
Векторные: SVG и SVGZEPSWMFEMFCDRCMX
Комплексные: DjVuPDFCGM
 Rambler's Top100