Как я могу найти цвет любого пикселя на экране - PullRequest
2 голосов
/ 13 декабря 2011

Я обычно программирую на VB6, но, тем не менее, считаю, что я могу ограничиться деталями в активной форме. У меня также есть codegear 2009 с c ++ и delphi, который я получил от помощника, но у меня есть только небольшой опыт работы с Delphi и совсем нет опыта работы с c ++, но, по крайней мере, он у меня есть, если одна из этих программ должна использоваться для достижения того, что я пытаюсь сделать. Я хочу иметь возможность сделать что-то вроде

IF pixelVar(x,y) = 'Red' ( or 'RGBvalue or whatever the correct colour representation)
THEN
    do something
END IF

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

1 Ответ

7 голосов
/ 13 декабря 2011

Используйте GetDC() с параметром hWnd, установленным в 0, чтобы получить дескриптор HDC для экрана, затем используйте GetPixel(), чтобы получить COLORREF пикселя в нужных экранных координатах, а затем, наконец, используйте GetRValue(), GetGValue() и GetBValue() для разделите COLORREF на значения Red, Green и Blue.

...