Окт 16

Растры

Графические объекты, рассмотренные в главе 2, такие как пикселы, линии и замкнутые фигуры, могут использоваться для построения инженерных и финансовых диаграмм, чертежей, геометрических узоров и иных графических композиций. Геометрические фигуры в этих изображениях описываются точными математическими формулами. Соответствующая область программирования компьютерной графики называется векторной графикой (vector graphics).
В другой, не менее важной области компьютерной графики используются оцифрованные изображения, полученные из окружающего мира. Эта область называется растровой графикой (bitmap graphics). Обычно растровые изображения получают от таких устройств, как цифровой фотоаппарат, сканер, видеокамера, либо создают в каком-нибудь графическом редакторе, к которым относится, например, Microsoft Paint или Adobe Photoshop.
Растровый, или битовый, образ {bitmap) — это оцифрованное представление изображения. Каждый пиксел изображения представлен в растровом образе одним или несколькими битами, в которых закодирован его цвет. В монохромных битовых образах для хранения информации о каждом пикселе достаточно одного бита. Но для кодирования цветных изображений требуется более одного бита на пиксел. Число цветов, которые могут быть представлены в битовом образе, равно 2", где п — количество битов на пиксел. Например, для старой модели дисплея VGA с поддержкой 256 цветов битовые образы содержали по 8 битов на пиксел. Для современных мониторов, поддерживающих до 224 цветов, битовый образ должен содержать 24 бита на пиксел, когда для каждого RGB-компонента цвета используется 8 битов.
В ранних версиях Windows использовался только один формат битового образа, получивший позже наименование аппаратно-зависимого растра, или DDB (device dependent bitmap). Особенность формата DDB состоит в том, что система всегда создает битовый образ в памяти с учетом характеристик конкретного графического оборудования. Например, если компьютер оснащен 256-цветным дисплеем, то созданный битовый образ будет содержать по 8 битов на пиксел. Формат DDB не подходил для переноса растров на другие компьютеры, так как характеристики графических устройств изменяются в очень широких пределах. Более того, даже на одном компьютере дисплей может работать в разных режимах, в зависимости от текущих настроек экрана.
Начиная с Windows 3.0, был введен новый формат битовых образов, названный аппаратно-независимым растром, или DIB (device independent bitmap). Битовый образ DIB кроме самого массива пикселов содержит справочную информацию о растре и цветовую таблицу. В цветовой таблице отражается соответствие двоичного представления пикселов цветам RGB, поэтому битовые образы этого формата после сохранения в файле могут быть воспроизведены на любом растровом графическом устройстве. Если устройство, на которое переносится DIB, имеет более узкий диапазон поддерживаемых цветов, то цвета из таблицы преобразуются к ближайшим цветам, которые устройство может действительно воспроизвести.
В настоящее время аппаратно-зависимые растры (DDB) используются во внутренней работе графической системы Windows, а также для представления тех битовых образов в программе, которые не предназначены для передачи во внешний мир. Аппаратно-независимые растры (DIB), напротив, применяются для обмена битовыми образами между программами как в форме файлов, так и через буфер обмена Windows.
Мы начнем наше путешествие по растровой тематике с рассмотрения DIB, потом перейдем к DDB и в завершение познакомимся с новым типом растров, поддерживаемым в Win32 GDI, — DIB-секциями.