如何找到屏幕上任何像素的颜色

时间:2011-12-12 23:28:43

标签: delphi vb6 delphi-2009 c++builder

我通常在VB6中编程,但我相信我可能会被限制在活动表单中的细节。我也有使用c ++和delphi的codegear 2009,我是从配偶那里得到的,但我对Delphi只有一点经验,而且根本没有使用c ++,但至少我有它们,如果其中一个程序需要用来实现我的我想做。我希望能够做类似

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

我想编写一个程序来保持扑克手的统计数据,并希望程序在我玩扑克客户端程序时运行,自动识别卡片的像素颜色和位置并将其输入数据库。我认为,如果我可以轻松访问像素信息,那么制定模式来识别卡片的数量和适合度就不会太困难了。 任何帮助都是巨大的。感谢。

1 个答案:

答案 0 :(得分:7)

使用GetDC()hWnd参数设置为0来获取屏幕的HDC句柄,然后使用GetPixel()获取COLORREF在所需的屏幕坐标处的像素,然后最后使用GetRValue()GetGValue()GetBValue()COLORREF拆分为红色,绿色和蓝色值。