|
|
|||
|
wm-help.net -> Электронная библиотека -> Разное -> Assembler для Windows -> Прорисовка одного пикселяПрорисовка одного пикселя
Прорисовка одного пикселя
Прорисовать один пиксель в определенной позиции мы можем с помощью вызова функции SetPixel(), описанной в wingdi.h: WINGDIAPI COLORREF WINAPI SetPixel(HDC, int, int, COLORREF);Первый три аргумента очевидны - контекст устройства вывода и координаты прорисовываемого пикселя. Но что такое COLORREF? Здесь следует пояснить, что каждый пиксель на экране состоит из трех микроточек - красной, зеленой и синей. Каждая из этих микроточек может светится с интенсивностью от 0 (микроточка не светится) до 255 (максимальная яркость). Например, если светится только красная составляющая, то получаются цвета от темно-бордового (почти черного) до ярко красного. Комбинируя микроточки и их интенсивность, мы можем определить почти 17 миллионов цветов (будут ли они все поддерживаться на компьютере читателя, определяется видеоподсистемой компьютера). Обычно в таких случаях говорят об RGB-значениях цвета (red, green, blue - красный, зеленый, голубой). Вернемся к COLORREF. Опять обратимся к заголовочному файлу, но на сей раз не к wingdi.h, а к windef.h: typedef DWORD COLORREF;Понятно, что COLORREF - это двойное слово. Оно кодируется следующим образом: 0x00bbggrrт.е. младший байт определяет интенсивность красного, второй - зеленого, третий - синего цвета. При нормальном завершении функция возвращает предыдущее значение цвета пикселя. Если возвращаемое значение равно -1, то это говорит либо о возникновении ошибки, либо о том, что координаты пикселя вышли за пределы рабочей области окна. |
|
| бодибилдинг | Строим Домик | RU-домены за 170 рублей | Copyright © "В помощь Веб-Мастеру" (Alexander D. Belyaev) 2005-2008. При перепечатке любого материала видимая ссылка на источник "В помощь Веб-Мастеру" и все имена, ссылки авторов обязательны! Время генерации страницы: 0.032 |