TGA

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

  • 0 - Нет изображения - нет - нет
  • 1 - Изображение с палитрой - да - нет
  • 2 - Truecolor изображения - нет - нет
  • 3 - Монохромное изображение - нет - нет
  • 9 - Изображение с палитрой - да - да
  • 10 - Truecolor изображения - нет - так
  • 11 - Монохромное изображение - нет - так

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


3. Картинки / карта цветов

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

5.4. Дата / время (12 байт)

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

5.5. Имя / ID задачи (41 байт)

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

5.6. Job time (6 байт)

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

5.7. ID ПО (41 байт)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5.15. Тип аттрибута (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.


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

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

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

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

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

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

6. Подвал

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

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

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

п ? в ? р Графические форматы файлов
Растровые форматы
JPEG ? JPEG 2000 ? JPEG-LS ? JBIG ? JBIG2
BMP ? GIF ? ICO ? ILBM ? PCX ? PNG ( MNG) ? TGA ? TIFF ? WMP
Векторные форматы
SVG и SVGZ ? EPS ? WMF ? EMF ? CDR
Комплексные форматы
ISO / IEC / ITU-T
п ? в ? р Форматы сжатия данных
Сжатие видео
ISO / IEC
MJPEG ? Motion JPEG 2000 ? MPEG-1 ? MPEG-2 ? MPEG-4 ASP ? MPEG-4/AVC
H.120 ? H.261 ? H.262 ? H.263 ? H.264
Другие
3gp ? AMV ? AVS ? Bink ? Dirac ? Indeo ? Pixlet ? RealVideo ? RTVideo ? SheerVideo ? Smacker ? Snow ? Theora ? VC-1 ? VP6 ? VP7 ? VP8 ? WMV
Сжатия аудио
ISO / IEC
G.711 ? G.718 ? G.719 ? G.722 ? G.722.1 ? G.722.2 ? G.723 ? G.723.1 ? G.726 ? G.728 ? G.729 ? G.729.1 ? G.729a
Другие
AC3 ? AMR ? Apple Lossless ? ATRAC ? FLAC ? iLBC ? Monkey's Audio ? μ-law ? Musepack ? Nellymoser ? OptimFROG ? Opus ? RealAudio ? RTAudio ? SHN ? Siren ? Speex ? Vorbis ? WavPack ? WMA ? TAK
Сжатия изображений
ISO / IEC / ITU-T
JPEG ? JPEG 2000 ? lossless JPEG ? JBIG ? JBIG2 ? PNG ? WBMP
Другие
BMP ? GIF ? ICER ? ILBM ? PCX ? PGF ? TGA ? TIFF ? JPEG XR / HD Photo
, Программы сжатия данных и Мультимедийный контейнер


Компьютер Это незавершенная статья о компьютеры.
Вы можете помочь проекту, исправив и дополнив ее.