Графические данные и палитра

Традиционно графические данные подразделяются на два типа: векторные и растровые.

В компьютерной графике векторные данные обычно используются для представления прямых, многоугольников, кривых (или любых объектов, созданных на их основе) с помощью определённых в численном виде контрольных ключевых точек. Программа воспроизводит линии посредством соединения ключевых точек. С векторными данными всегда связаны информация об атрибутах (цвете, толщине линий) и набор соглашений (или правил), позволяющих программе начертить требуемые объекты. Понятие вектор в данном случае определяет отрезок линии.

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

Количество возможных цветов (глубину цвета) пиксела определяет битовая глубина. Однобитовый пиксел может быть одного из двух цветов, четырёхбитовый – одного из 16 и т. д. На сегодняшний день, в основном, используется глубина цвета в 24 и 32 бита (возможны варианты в 1, 2, 4, 8, 15, 16 бит).

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

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

Наиболее распространённым способом передачи цвета является модель RGB. В этой модели основными являются цвета: красный (Red), зелёный (Green) и синий (Blue). Цвет задаётся посредством RGB-триплета. Каждый пиксел физически определяется триадой веществ. Обычно используются окислы: цинка (зеленый), меди (синий), европия (красный). При сохранении цветовых данных в файле триплет записывают в виде чисел. Если глубина цвета равна 24 бита, например, по 8 бит на каждый основной цвет, то диапазон значений цвета для каждого байта равен 0…255. Причём, чаще всего, принимается, что пикселные значения (0, 0, 0) соответствуют чёрному цвету, (255, 255, 255) – белому, (255, 0, 0) – красному, а, например, триплет (127, 127,127) определяет один из вариантов серого. Таким образом, теоретически данная схема описывает около 16,7 миллионов составных цветов.

Довольно часто набор цветов, который задаётся в файле, отличается от того, который может быть отображён на конкретном устройстве. Задача согласования наборов цветов обычно решается программой визуализации, которая осуществляет преобразование цветов, заданных в файле, в цвета устройства отображения. Если количество цветов, заданных пикселными значениями в файле, меньше количества цветов, которое может отображать устройство вывода, то проблем обычно не возникает, в противном случае - происходит потеря данных, и могут появиться нежелательные эффекты. В любом варианте программа визуализации должна выполнить определённую работу, сопоставляя наборы цветов источника и адресата.

Значения триплета непосредственно передаются устройству отображения. При записи этих значений в файл может осуществляться кодировка с помощью палитр. Палитра представляет собой одномерный массив цветовых величин. С помощью палитры цвета задаются косвенно посредством указания их позиций (индексов) в массиве. Это позволяет сократить объём файлов. Например, 4-битовые пиксельные данные могут использоваться для представления изображений, содержащих 16 цветов. Определив для этих 16 цветов палитру, данные в файл записываются в виде чисел из диапазона 0…15. Программа визуализации, читая данные из файла, перекодирует их в соответствии с палитрой в триплеты, которые и используются для окрашивания точек на устройстве вывода. При глубине цвета 24 и выше палитра не используется.

В настоящее время часто используется глубина цвета в 32 бита. Данный режим работы графического устройства похож на режим в 24 бита, но в нем добавлен четвертый 8-битовый канал (альфа-канал), содержащий дополнительную информацию о прозрачности каждой точки. Существует режим pfCustom, предназначенный для реализации программистом собственных конструкций.



Наши рекомендации