【问题标题】:How can I find the colour of any pixel on the screen如何找到屏幕上任何像素的颜色
【发布时间】:2012-01-18 22:11:59
【问题描述】:

我通常使用 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

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

【问题讨论】:

  • 重写扑克游戏以自动保留您想要的统计数据会更容易(除非您已经对特定游戏有所了解)。我做过一次二十一点模拟,从那以后我就没有进过赌场。 ;-)
  • 写一个在线扑克机器人嗯?
  • “我也有 codegear 2009 与 c++ 和 delphi,我从一个伙伴那里得到的”?听起来合法......
  • @Deanna,你想见见我的伙伴 Kim DotCom 吗?

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    相关资源
    最近更新 更多