Android上的OpenGL - 将位图转换为纹理,并保存纹理

时间:2017-02-01 14:46:44

标签: java android bitmap opengl-es

我和我的团队目前正在开发一款Android应用来进行快速实时和非实时图像处理。

我们面临两个问题:

首先,我们希望将Bitmap转换为纹理以使用OpenGL着色器处理图片,然后将其转换回Bitmap。我们尝试了一些不成功的实现,就像在SurfaceTexture和Renderer中使用GLUtils.texImage2D函数一样。

我们的第二个问题是我们目前不知道如何在我们的实时相机活动中保存纹理。我们使用OnFrameAvailableListener来处理图像。但就目前而言,我们无法保留原始纹理。

我们希望有人能为我们的问题提供答案。提前致谢 !

1 个答案:

答案 0 :(得分:2)

<强>第一

纹理位图

来源:

http://www.learnopengles.com/android-lesson-four-introducing-basic-texturing/

    // Bind to the texture in OpenGL
    GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureHandle[0]);

    // Set filtering
    GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);
    GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);

    // Load the bitmap into the bound texture.
    GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0);

    // Recycle the bitmap, since its data has been loaded into OpenGL.
    bitmap.recycle();

纹理到位图:

来源:

How do you convert opengl texture back to bitmap in android?

<强>第二

我链接的SO链接中还有一个保存选项。