在Windows中获取屏幕上坐标像素数据的简单方法

时间:2015-01-09 14:55:46

标签: c++ screen pixel

我正在寻找一种简单的方法来获取Windows 8操作系统中屏幕上任何给定坐标的rgb值。这是一个程序处理并尝试在屏幕上查找模式和对象,所以我只需要将收集的数据放入一个数组中。最好的情况是类似getPixelData(int x, int y)的函数,然后返回颜色数据。我将在Visual Studio 2008中编译最终程序。没有其他问题我发现这个确切的问题,因为他们似乎主要谈论将数据写入图像文件或他们没有解释文件的位置访问机制数据。这是一个问题,没有给我我正在寻找的确切答案,只是将我的问题放在上下文中。 How to get Pixel data \ Pixel buffer from a window and extract RGB? 如果任何人可以帮助我,我将非常感激,如果没有简单的解决方案,那么我可以用更难的东西。另外,如果您需要有关我的问题的更多信息,请询问。我没有发布任何源代码,因为我只是在寻找代码的补充而不是修复预先存在的代码中的任何内容。

1 个答案:

答案 0 :(得分:1)

您在链接中给出了很好的答案。最简单的方法是使用

COLORREF GetPixel(
  HDC hdc, 
  int nXPos, 
  int nYPos
);

要获取屏幕HDC,您可以使用this,如何从COLORREF获取RGB值,here

更有效的方法是使用位图同时获取整个屏幕,这也会在您提供的链接中进行描述,但更多的是友好的"您可以找到here