скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

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



OK, берем книжку 'Graphics File Formats, 2nd Edition' (форматы графических файлов) авторов David C. Kay & John R. Levine, и читаем формат заголовка файла для хранения изображения формата Targa.

Описание заголовка файла для изображения формата Targa
Смещение
Длина (в байтах)
Описание
0 1 Длина ID-поля (ID Field Length)
1 1 Тип цветовой карты (Color-map Type)
2 1 Тип изображения (Image Type)
      Информация о специфике цветовой карты (Color-map-specific Info)
3 2 Первое включение цветовой карты (First Color-map Entry)
5 2 Длина цветовой карты (Color-map Length)
7 1 Размер цветовой карты (Color-map Entry Size)
      Информация о специфике изображения (Image-specific Info)
8 2 Горизонтальная координата начала изображения (Image X Origin)
10 2 Вертикальная координата начала изображения (Image Y Origin)
12 2 Ширина изображения (Image Width)
14 2 Высота изображения (Image Height)
16 1 Бит на пиксел (Bits-Per-Pixel)
17 1 Биты дескриптора изображения (Image-Descriptor Bits)

Для изображений с разрешением True-color значение типа цветовой карты должно равняться нулю, в остальных случаях единице. В случае, когда цветовая карта присутствует, ее размер должен равняться значению 15, 16, 24 или 32. Для значений 15 и 16 каждая цветовая карта при загрузке использует 2 байта в формате:

Верхний байт    Нижний байт
A RRRRR GG      GGG BBBBB  

где бит 'A' устанавливается в 0 для 15-битных цветовых величин. 24-битный размер карты хранится как три байта в следующем порядке: (B)lue (синий), (G)reen (зеленый), и (R)ed (красный). 32-битный размер цветовой карты использует четыре байта, ее порядок такой: (B)lue (синий), (G)reen (зеленый), (R)ed (красный) и значение атрибута - (A)ttribute.

Наконец, код, хранящий тип изображения (Image Type) должен содержать одно из следующих значений:

Код             Описание
----            -----------
0               Изображение отсутствует
1               Цветовая карта, без компрессии
2               True-color, без компрессии
3               Черно-белое, без компрессии
9               Цветовая карта, RLE-компрессия
10              True-color, RLE-компрессия
11              Черно-белое, RLE-компрессия
Горизонтальная и вертикальная координата начала изображения (Image X & Y Origins) и размеры изображения (Image Width & Height) разъяснений не требуют. Бит на пиксел (Bits-Per-Pixel) обозначает количество битов, содержащихся в точке изображения и может быть равен значению 8, 16, 24, и 32.

Биыт дескриптора изображения (The Image Descriptor bytes) содержит несколько полей битов, которые содержат следующую информацию:

Биты            Описание
----            -----------
0-3             Биты атрибутов (описаны ниже)
4               Ориентация Слева-на-Право 0=Л/П 1=П/Л
5               Ориентация Вехр/Низ 0=Н/В 1=В/Н
6-7             Чередование линий 00H=Нет, 40H=2 линии, 80H=4 линии
Биты атрибутов используются для определения атрибутов цветов в цветовой карте или true-color пикселах. 0 - alpha-данные (alpha-канал) отсутствуют, 1 - игнорирование или неопределено, 2 - не определено, но должно быть сохранено, 3 - наличие alpha-данных и 4 - информация о пикселе уже была умножена на alpha-величину.

Файлы версии Targa 2.0 также имеют файловый колонтитул, который может содержать дополнительное изображение или комментарии. Эти файлы всегда заканчиваются строкой-терминатором 'TRUEVISION-TARGA.'. Так, если ваше Targa-изображение заканчивается значением 'TRUEVISION-TARGA.' + 00H, то вы можете извлечь восемь байтов до строки, чтобы найти начало расширенной области и месторасположение каталога сборки данного файла. Обычно файловый колонтитул версии 2.0 имеет следующий формат:

Формат файлового колонтитула Targa версии 2.0
Байт
Длина
Описание
0 4 32-битное смещение расширенной области
4 4 32-битное смещение каталога сборки
8 17 TRUEVISION-TARGA.
25 1 Двоичный ноль ($0)

Я не собираюсь давать полные описания каталога сборки и области расширения. Вместо этого я приведу описание "почтовой марки", которая может содержаться в формате Targa V2.0. Данная "марка"-иконка должна иметь размеры 64 X 64 пикселей, представляет собой уменьшенный образ изображения, может включаться в файл по желанию компоновщика и не является обязательной.

Область расширения
Смещение
Длина
Описание
0 2 Размер области расширения (должна быть 495)
2 41 Имя автора
43 81 Авторские комментарии
124 81 Авторские комментарии
205 81 Авторские комментарии
286 81 Авторские комментарии
367 2 Месяц создания
369 2 День создания
371 2 Год создания
... ... ...
482 4 Смещение в файле таблицы цветовой коррекции
486 4 Смещение в файле изображения "почтовой марки"
490 4 Смещение в файле таблицы чередования линий
494 1 Байты атрибутов

Данная "почтовая марка", при наличии, может быть использована вами непосредственно. Она хранится в виде несжатого изоюражения в том же цветовом формате (цветовой карте или True-color), как и исходное изображение.






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook