|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Win32 API - как узнать цвет точки в с++ ? |
|
Win32 API - как узнать цвет точки в с++ ?
|
![]() Старожил Сообщения: 205 |
пытаюсь написать простенькую игрушку на visual с++ с использованием win api.
подскажите, а как узнать цвет точки с заданными координатами x,y? Цитата:
|
||
Отправлено: 00:48, 13-06-2009 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Цвет точки на экране (DC) можно узнать функцией GetPixel, но для игрушки (где требуется быстродействие) я бы это не рекомендовал. Лучше держать самому в памяти картинку и брать цвет точки - элемент матрицы, содержащей пиксели (для 8-битного рисунка 1 пиксель - 1 байт). Картинку можно периодически копировать на экран функцией SetDIBitsToDevice. Заодним, если требуется длительная прорисовка, это всё будет работать как двойная буфферизация графики.
|
Отправлено: 13:37, 13-06-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Старожил Сообщения: 205
|
Профиль | Отправить PM | Цитировать спасибо большое- с оптимизацией графики очень полезное сообщение- а то все мерцает..! попробую разобраться с картинкой..
пока только начинаю с этим знакомиться. и картинки надо еще научиться инициализировать и правильно коды цветов задавать и вообще с ними работать... пс нашел программу -фейверк. на применение этого метода. https://www.planet-source-code.com/v...=6331&lngWId=3 если кто-нибудь найдет еще примеры простенькие- скиньте ссылки, сил вупле ![]() |
Последний раз редактировалось Turman, 16-06-2009 в 12:59. Отправлено: 00:49, 15-06-2009 | #3 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать пример с двойной буфферизацией: http://forum.oszone.net/thread-141528.html
в 8-битром рисунке коды цветов программируются в палитре. Структура BITMAPINFO должна быть дополнена массивом из 256 DWORD-ов, которые задают цвет (RGB). Индекс в массиве соответствует коду цвета на картинке. |
Отправлено: 11:49, 23-06-2009 | #4 |
Пользователь Сообщения: 84
|
Профиль | Отправить PM | Цитировать Для Visual не знаю, если чем поможет, то:
C++ Builder: GetPixel(Canvas->Handle,x,y); Либо по каналам: TColor c1, c2, c3; c1 = getRValue(GetPixel(Canvas->Handle,x,y)); c2 = getGValue(GetPixel(Canvas->Handle,x,y)); c3 = getBValue(GetPixel(Canvas->Handle,x,y)); |
|
Отправлено: 09:46, 26-06-2009 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Как поменять цвет списка воспроизведения | vladj | Microsoft Windows 7 | 1 | 21-10-2009 12:11 | |
Slackware - как заменить название точки доступа | alex_cent | Общий по Linux | 2 | 21-05-2009 11:35 | |
две точки 2000AP+(a1+a2) и карта 650+ хочу репитер из точки | Soft_warrior | Microsoft Windows NT/2000/2003 | 0 | 03-05-2006 21:53 | |
полоса прокрутки.КАК изменить цвет? | MozART | Вебмастеру | 10 | 06-10-2002 23:12 | |
как сделать 2 точки входа ? | vasketsov | Программирование и базы данных | 2 | 24-06-2002 11:53 |
|