Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Win32 API - как узнать цвет точки в с++ ?

Ответить
Настройки темы
Win32 API - как узнать цвет точки в с++ ?

Аватара для Turman

Старожил


Сообщения: 205
Благодарности: 8

Профиль | Отправить PM | Цитировать


пытаюсь написать простенькую игрушку на visual с++ с использованием win api.
подскажите, а как узнать цвет точки с заданными координатами x,y?

Цитата:
это кусок программки- чтобы както обозначить поле деятельности)
LONG WINAPI WndProc(HWND, UINT, WPARAM,LPARAM);
int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASS w;

Отправлено: 00:48, 13-06-2009

 
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Цвет точки на экране (DC) можно узнать функцией GetPixel, но для игрушки (где требуется быстродействие) я бы это не рекомендовал. Лучше держать самому в памяти картинку и брать цвет точки - элемент матрицы, содержащей пиксели (для 8-битного рисунка 1 пиксель - 1 байт). Картинку можно периодически копировать на экран функцией SetDIBitsToDevice. Заодним, если требуется длительная прорисовка, это всё будет работать как двойная буфферизация графики.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:37, 13-06-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Turman

Старожил


Сообщения: 205
Благодарности: 8

Профиль | Отправить PM | Цитировать


спасибо большое- с оптимизацией графики очень полезное сообщение- а то все мерцает..! попробую разобраться с картинкой..
пока только начинаю с этим знакомиться. и картинки надо еще научиться инициализировать и правильно коды цветов задавать и вообще с ними работать...
пс
нашел программу -фейверк. на применение этого метода.
https://www.planet-source-code.com/v...=6331&lngWId=3

если кто-нибудь найдет еще примеры простенькие- скиньте ссылки, сил вупле

Последний раз редактировалось Turman, 16-06-2009 в 12:59.


Отправлено: 00:49, 15-06-2009 | #3

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


пример с двойной буфферизацией: http://forum.oszone.net/thread-141528.html
в 8-битром рисунке коды цветов программируются в палитре. Структура BITMAPINFO должна быть дополнена массивом из 256 DWORD-ов, которые задают цвет (RGB). Индекс в массиве соответствует коду цвета на картинке.

Отправлено: 11:49, 23-06-2009 | #4


Пользователь


Сообщения: 84
Благодарности: 1

Профиль | Отправить 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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Win32 API - как узнать цвет точки в с++ ?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Как поменять цвет списка воспроизведения 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




 
Переход