2010-12-13 135 views
5

我想爲網頁遊戲製作一個簡單的機器人,所以我希望能夠讀取屏幕上像素的顏色。我使用GetPixel()在Windows上完成了這個工作,但是我似乎無法在OS X上找到它。我一直在網上查找並且遇到了glReadPixel。當我在XCode中製作一個簡單的命令行工具時,我輸入了下面的代碼。但是,我似乎無法使其工作。我一直從該得到一個EXC_BAD_ACCESS錯誤:如何從屏幕上讀取像素?

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

我想上面的代碼將存儲像素的(0,0)的紅色值成河哦,我想避免採取屏幕截圖的方法,因爲這很慢。任何幫助?

P.S.使用命令行工具,我的最終目標是創建一個bash腳本或一個applescript,因爲我已經有了一個可以點擊屏幕的命令行工具。

+0

當你調用'glReadPixels()'時你有一個活動的OpenGL上下文嗎? – genpfault 2010-12-13 05:18:02

+0

沒有。你能否指點我正確的方向? – hassaanm 2010-12-13 05:27:05

+0

我希望活躍的OpenGL上下文成爲主屏幕。 – hassaanm 2010-12-13 05:47:32

回答

4

glReadPixels只關心從幀緩衝區(圖形卡繪製的區域)讀取像素。

從「屏幕」讀取像素根本與OpenGL無關。你需要系統特定的功能。

+0

謝謝。你會碰巧知道我將如何能夠在Mac上獲得屏幕像素? – hassaanm 2010-12-15 04:11:55

+0

不,我不嘮叨mac。 :) – Kos 2010-12-15 11:29:09