Открой свой мир программирования и    
цифровых технологий
Использование цвета
Автор lisa   
04.07.2011 г.
Оглавление
Использование цвета
Режимы с подавлением цвета
Цвет в текстовых и графических режимах
Установка цвета в текстовых режимах
Установка атрибутов в монохромном режиме
Установка цвета в графических режимах

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

Цвета на экранах видеодисплеев формируется за счет комбинации четырех элементов: три цвето­вых компонента — красный, зеленый и синий плюс компонент интенсивности, или яркости.

Текстовые и графические режимы используют те же самые значения цветов и интенсивности, од­нако они по-разному их объединяют для получения цветных изображений. В текстовых режимах, где основной единицей отображения является знак, состоящий из нескольких пикселов, для установки характеристик цвета, интенсивности и мерцания знака и его фона используется целый байт. В гра­фических режимах каждый пиксел представлен группой от 1 бита до 8 битов, значения которых оп­ределяют цвет и яркость отображаемого пиксела.

В текстовых и графических режимах, обеспечивающих 16 цветов, четыре компонента цвета и яр­кости объединяются 16 различными способами. Цвет задается группой из 4 битов. Каждый бит опре­деляет наличие или отсутствие конкретного компонента цвета. В результате получаются 16 цветовых комбинаций, соответствующих шестнадцати двоичным числам длиной 4 бита (см. табл. 4.3).

В некоторых видеорежимах данные в буфере состоят из 4-битовых значений атрибутов, в точно­сти соответствующих 16 возможным цветовым комбинациям на экране. В других видеорежимах зна­чения атрибутов не задают явно цвет. Например, для EGA каждое значение атрибута задает один из 16 регистров палитры, каждый из которых содержит значение цвета (см. рис. 4.2.). Именно значе­ния цвета палитры определяют, какие цветовые комбинации будут использоваться при формирова­нии изображения на экране.

Использование палитр делает возможным указание какого-либо цвета из широкого диапазона цве­тов с помощью сравнительно небольшого количества битов данных в видеобуфере. Каждый из 16 регистров палитры EGA может, к примеру, содержать одно из 64 различных 6-битовных значений цвета. Таким образом, при работе с EGA любые 2 из 64 различных цветов могут быть использованы в 2-цветном видеорежиме, любые 4 цвета из 64 могут быть использованы в 4-цветном режиме и, наконец, любые 16 цветов из 64 могут быть использованы в 16-цветном режиме.

Все видеоподсистемы фирмы IBM, за исключением MDA, могут использовать палитры для отобра­жения цветов. В CGA имеется три встроенных 4-цветных палитры для работы в 4-цветном режиме с разрешающей способностью в 320x200. В EGA, как мы уже видели, есть 16-цветная палитра, каж­дый цвет в которой выбирается из набора в 64 цвета. В MCGA и VGA с еще более широким диапазо­ном воспроизводимых цветов используется специальный компонент типа палитры — цифре/аналого­вый видеопреобразователъ (video DAC — digital to analog converter) — для передачи цветовых сигна­лов на экран.

DAC содержит 256 цветовых регистров, каждый из которых хранит 6-битов^ые значения цвета для красного, зеленого и синего. Поскольку для каждого из компонентов RGB существует 64 возмож­ных значения, каждый регистр цвета DAC может задавать один из 64x64x64 - 262144 различных цветов. Такой широкий диапазон цветов поможет вам отобразить едва уловимые оттенки.

Цветовые регистры DAC видеоподсистемы MCGA во многом служат той же цели, что и регистры палитры видеоподсистемы EGA. Значения атрибутов в видеобуфере задают регистры цвета DAC, со­держимое которых определяют возникающие на экране краски. К сожалению, только один видеоре­жим MCGA может в полной мере использовать возможности DAC: 256-цветный режим с разрешаю­щей способностью в 320x200. Только этот видеорежим использует 8-битовые значения атрибутов, которые позволяют задавать все 256 регистров цвета DAC. Остальные видеорежимы используют значе­ния атрибутов размером не более 4 битов, поэтому в этих режимах задействуются только первые 16 регистров цвета DAC.

Видеоподсистема VGA снимает это ограничение (а заодно ставит новые проблемы) за счет одно­временного использования и 16 регистров палитры (как в EGA), и набора из 256 регистров цвета DAC (как в MCGA). Значение атрибута в видеобуфере задает один из 16 регистров палитры. По со­держимому этого регистра выбирается один из 256 регистров цвета DAC, который, в свою очередь, определяет цвет, появляющийся на экране (см. рис. 4.3).

Задание цвета на адаптерах EGA, MCGA и VGA сложнее, чем на CGA. Однако для облегчения этого процесса ROM BIOS загружает в регистры палитры <на EGA и VGA) и в регистры цвета DAC (на MCGA и VGA) значения цветов, точно совпадающие с используемыми на CGA. Если вы работа­ете в текстовом или графическом режиме, совместимом с режимами для CGA, на одной из новейших видеоподсистем, игнорируя регистры палитры и регистры DAC, вы видите те же самые цвета, что и на CGA.

По этой причине обычно лучше игнорировать регистры палитры и регистры DAC на начальной стадии разработки прикладной программы. Как только вы отладите программу на базе совместимых с CGA цветов, вы можете добавить в нее код для изменения цветов палитры и/или DAC. ROM BIOS предоставляет полный набор служб, которые позволяют вам обращаться к регистрам палитры и реги­страм DAC. В гл.9 данные службы описываются достаточно подробно. Продолжая разговор о цвете, мы советуем вам прочитать оставшиеся разделы, в которых обсуждаются важные вопросы по данной теме.



Последнее обновление ( 21.11.2011 г. )
 
« Пред.   След. »
Скачать книги по программированию