Bitmap.getPixels()
返回一个整数数组,其像素值以“Packed Integer”格式返回,在Color
的文档中有所描述。
此格式为A,R,G,B。
我想将此数组传递给GLES10.glTexImage2D()
。我已尝试将internalFormat
和format
都指定为GL_RGBA
。但是这会导致蓝色和红色通道被交换。
我找不到描述这种格式的Opengl等价物。
除此之外,我可以使用按位运算交换R和B通道以符合GL_RGBA,但更喜欢OpenGl本身可以识别格式。
<小时/> 的更新 我知道我可以直接使用
TexImage2D()
的Bitmap,但我需要调用getPixels()
,因为我需要在将像素数据用作纹理之前对其进行操作。我可以将像素转换回Bitmap,但就像我说的,如果我可以直接将像素用作纹理,我更愿意。
答案 0 :(得分:0)
您不需要检索像素,也不需要处理基础像素格式,只需将Bitmap对象传递给GLUtils.texImage2D()实用程序。
例如:
Bitmap bitmap = BitmapFactory.decodeResource(...);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);