如何使用带有 OpenGL ES 的 android 相机工作?

Posted

技术标签:

【中文标题】如何使用带有 OpenGL ES 的 android 相机工作?【英文标题】:how to use android camera with OpenGL ES to work? 【发布时间】:2011-12-12 10:49:09 【问题描述】:

我想使用 OpenGL ES 进行 android 相机预览并保存捕获的图像。

我喜欢在 Android 相机中使用 OpenGL ES 来为 Android 相机添加一些效果。所以请谁告诉我怎么做?

【问题讨论】:

【参考方案1】:

你需要实现android.hardware.Camera.PreviewCallback接口并重写方法

public synchronized void onPreviewFrame(byte[] data, Camera camera) 
                        myOpenGLObject.receiveFrames(data);
        

读取从相机回调接收到的帧。 我建议你看一下andar 源http://code.google.com/p/andar/。尤其是CameraPreviewHandler.java的班级。

我希望这能回答你的问题。

【讨论】:

感谢您的回复。至少我得到了一个答复。但请参阅更新后的问题。 如果我得到了我想要的正确结果,我会接受你的回答。【参考方案2】:

更快的方法是避免onPreviewFrame 回调并使用SurfaceTexture 作为相机渲染预览的纹理。 看看 grafika 里面的例子,它或多或少是一样的:https://github.com/google/grafika/blob/master/src/com/android/grafika/CameraCaptureActivity.java

【讨论】:

以上是关于如何使用带有 OpenGL ES 的 android 相机工作?的主要内容,如果未能解决你的问题,请参考以下文章