如何读取屏幕上的像素?

时间:2010-12-13 03:47:46

标签: macos opengl screen-scraping pixel

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

GLfloat r;
glReadPixels(0, 0, 1, 1, GL_RED, GL_FLOAT, &r);

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

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

1 个答案:

答案 0 :(得分:4)

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

从“屏幕”读取像素根本与OpenGL无关。您需要特定于系统的功能。