如何读取屏幕上的像素?

has*_*anm 6 opengl macos screen-scraping pixel

我正在尝试为网页游戏制作一个简单的机器人,所以我希望能够读取屏幕上像素的颜色.我在Windows上用GetPixel()完成了这个,但我似乎无法在OS X上弄明白.我一直在网上看到并遇到了glReadPixel.当我在XCode中创建一个简单的命令行工具时,我输入以下代码.但是,我似乎无法使其发挥作用.我一直收到EXC_BAD_ACCESS错误:

GLfloat r;
glReadPixels(0, 0, 1, 1, GL_RED, GL_FLOAT, &r);
Run Code Online (Sandbox Code Playgroud)

我认为上面的代码会将(0,0)处像素的红色值存储到r中.哦,我想避免采取屏幕截图方法,因为这很慢.有帮助吗?

PS使用命令行工具,我的最终目标是制作一个bash脚本或一个AppleScript,因为我已经有了一个可以点击屏幕的命令行工具.

Kos*_*Kos 4

glReadPixels只关心从帧缓冲区(显卡绘制的区域)读取像素。

从“屏幕”读取像素与OpenGL完全无关。为此,您需要系统特定的功能。