为什么glReadPixels方法总是得到RGB(0,0,0)

时间:2012-02-19 08:21:36

标签: android opengl-es color-picker

我尝试在Android OpenGL ES中实现颜色选择。

我在这里得到坐标:

public boolean onTouchEvent(MotionEvent e) {
   float x = e.getX();
   float y = e.getY();
   ...

在这里,我想获得点击的像素信息:

public void processPick(GL10 gl){
    ByteBuffer pixel = ByteBuffer.allocate(4);
    pixel.order(ByteOrder.nativeOrder());
    gl.glReadPixels((int)clickPosX, (int)clickPosY, 1, 1, GL10.GL_RGB, GL10.GL_UNSIGNED_BYTE, pixel);
    byte[] b = new byte[3];
    pixel.get(b);
    Log.d("buffer", b[0] + ",  "+b[1]+", "+b[2]);
}

但实际上我总是得到RGB(0,0,0),这有什么不对?如何正确设置颜色和颜色?

任何人都可以帮助我吗?谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个: gl.glReadPixels((int)clickPosX,(int)clickPosY,1,1,GL10.GL_RGBA,GL10.GL_UNSIGNED_BYTE,pixel); byte [] b = new byte [4];