-1
我試圖讀glReadPixels
像素的RGBA值。我的問題是,每當我嘗試讀取一個像素時,我都會得到奇怪的值。像素讀取時當x或y不是0時glReadPixels不正確
ByteBuffer pb = ByteBuffer.allocateDirect(400);
pb.order(ByteOrder.nativeOrder());
pb.position(0);
GLES20.glReadPixels(0, 0, 10, 10, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, pb);
byte b [] = new byte[400];
pb.get(b); //Here I get [0, 0, 31, -1, 0, 0, 31, 1....] which is the correct value
ByteBuffer pt = ByteBuffer.allocateDirect(4);
pt.order(ByteOrder.nativeOrder());
pt.position(0);
GLES20.glReadPixels(1, 0, 1, 1, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, pt);
b= new byte[4];
pt.get(b); //Here I get [-84, 100, -44, -81]
這種錯位,只有當我eglChooseConfig
一個RGB_565配置,而不是一個RGB_888配置,所以我認爲有什麼關係呢,但我希望這種情況發生:我寫了下面的調試代碼除了讀取整個圖片並查看返回的數組之外,還有一些可以讀取正確像素的東西。
我試過了,但沒有奏效。我不太瞭解這個參數,但是我從https://www.opengl.org/sdk/docs/man2/xhtml/glReadPixels.xml獲得的是它用於指定讀取像素的返回格式,不是所存儲像素的格式。那是對的嗎? – eirasf 2015-02-19 13:56:27