Android中的Bitmap.getPixels()的OpenGl格式是什么?

时间:2011-04-21 11:20:49

标签: java android opengl-es

Bitmap.getPixels()返回一个整数数组,其像素值以“Packed Integer”格式返回,在Color的文档中有所描述。

此格式为A,R,G,B。

我想将此数组传递给GLES10.glTexImage2D()。我已尝试将internalFormatformat都指定为GL_RGBA。但是这会导致蓝色和红色通道被交换。

我找不到描述这种格式的Opengl等价物。


除此之外,我可以使用按位运算交换R和B通道以符合GL_RGBA,但更喜欢OpenGl本身可以识别格式。

<小时/> 的更新 我知道我可以直接使用TexImage2D()的Bitmap,但我需要调用getPixels(),因为我需要在将像素数据用作纹理之前对其进行操作。我可以将像素转换回Bitmap,但就像我说的,如果我可以直接将像素用作纹理,我更愿意。

1 个答案:

答案 0 :(得分:0)

您不需要检索像素,也不需要处理基础像素格式,只需将Bitmap对象传递给GLUtils.texImage2D()实用程序。

例如:

Bitmap bitmap = BitmapFactory.decodeResource(...);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);