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

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

本文关键字:像素数 像素 数据 坐标 简单 方法 获取 窗口 屏幕      更新时间:2023-10-16

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

你在给出的链接中有一个很好的答案。最简单的方法是使用

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

要获取屏幕HDC您可以使用它以及如何从COLORREF获取 RGB 值是此处描述的。

更有效的方法是使用位图一次获取整个屏幕,这在您提供的链接中也有描述,但您可以在此处找到更"友好"的方法。