Курс лекций по компьютерной геометрии и графике
  256Компьютерная графикаКГиГТема № 2. Форматы графических файлов

Тема № 2 Форматы графических файлов

Страницы: 1 2 3 4 5 6 7

Страница 4

Глобальная таблица цветов

Глобальная таблица цветов является необязательной и рекомендуется для изображений, где требуется точная передача цветов. На существование этой таблицы указывает поле 'M' в байте 5 дескриптора экрана. Цветовая таблица может быть также связана с каждым изображением в GIF-файле. Число элементов цветовой таблицы, следующей за описателем экрана равно 2**(число бит/пиксел), причем каждый элемент состоит из трех байтов, значения которых описывают соответственно относительную интенсивностькрасного, зеленого и синего цветов.

биты 7 6 5 4 3 2 1 0 № Байта  
Интен. красного 1 Значение красного для цвета 0
Интен. зеленого 2 Значение зеленого для цвета 0
Интен. синего 3 Значение синего для цвета 0
Интен. красного 4 Значение красного для цвета 1
Интен. зеленого 5 Значение зеленого для цвета 1
Интен. синего 6 Значение синего для цвета 1
    (Продолжение для остальных цветов)
Рис. 3. Структура блока цветовой таблицы

Получаемое значение каждого пиксела при высвечивании изображения будет соответствовать ближайшему доступному цвету из цветовой таблицы дисплея. Цветовые компоненты представляют собой значение относительной интенсивности от нулевой (0) до полной (255). Белый цвет может быть представлен как (255,255,255), черный как (0,0,0) и желтый как (180,180,0). При высвечивании на дисплеях, которые поддерживают менее 8 бит на цветовую компоненту, используются старшие биты. При создании элементов цветовой таблицы GIF на аппаратуре, поддерживающей менее 8 бит на компоненту, значение аппаратной компоненты должно быть конвертировано в 8-битный формат по следующей формуле:
<значение_в_таблице> = <компонента>*255/(2**<число_бит> -1)

Это обеспечивает точный перевод цветов для всех дисплеев. В случае создания изображения GIF на аппаратуре без возможности цветовой палитры, должна быть создана фиксированная палитра на основе доступных для данного оборудования цветов. Если указано отсутствие глобальной таблицы цветов, цветовая таблица по умолчанию генерируется внутренним образом так, что каждый цветовой индекс равен аппаратному цветовому индексу modulo <n>, где <n> - число доступных цветов на оборудовании.

Дескриптор изображения

Дескриптор изображения определяет действительное расположение и размеры последующего изображения внутри пространства, определенного в дескрипторе экрана. Также определяются флаги, указывающие на присутствие локальной таблицы для поиска цветов и определения последовательности высвечивания пикселов. Каждый дескриптор изображения начинается с символа-разделителя изображений. Роль разделителя изображений состоит просто в синхронизации при входе в дескриптор изображения. Это желательно, если GIF-файл состоит более чем из одного изображения. Этот символ определен как шестнадцатеричное 0x2C или ',' (запятая). Как только этот символ встречается между изображениями, непосредственно за ним следует дескриптор изображения.
Любой символ, встреченный между концом предыдущего изображения и символом-разделителем изображения игнорируется. Это позволит при последующих модификациях GIF допускатьприсутствие нескольких форматов и правильноигнорировать их старыми декодерами.

биты Номер байта Описание
7 6 5 4 3 2 1 0
0 0 1 0 1 1 0 0 1 ',' – Символ-разделитель изображения
Левый край 2
3
Начало изображения в пикселах относительно левого края экрана (сначала LSB)
Верхний край 4
5
Начало изображения в пикселах относительно верхнего края экрана (сначала LSB)
Ширина 6
7
Ширина изображения в пикселах (сначала LSB)
Высота 8
9
Высота изображения в пикселах (сначала LSB)
M I 0 0 0 Pixel 10 M=0 – Использовать глобальную таблицу цветов, игнорировать 'pixel'
    M=1 – Далее следует локальная таблица цветов, использовать 'pixel'
I=0 – Изображение отформатировано в последовательном порядке
I=1 – Изображение отформатировано в порядке переплетения
pixel+1 – число бит на пиксел в данном изображении

Рис. 4 Структура дескриптора изображения

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

Страницы: 1 2 3 4 5 6 7

Рекламный блок

Информационный блок