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

Simple way to get pixel data of coordinate on screen in windows

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

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

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

要获取屏幕 HDC,您可以使用 this and how to get RGB values from COLORREF is vell described here

更有效的方法是使用位图一次获得整个屏幕,这也在您提供的 link 中进行了描述,但您可以找到更多 "friendly" 方法 here