如何使用带有 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 相机工作?的主要内容,如果未能解决你的问题,请参考以下文章
如何让 OpenGL-ES 在带有 SDL2 的 Raspberry Pi 上工作?
OpenGL ES 在不使用 glPixelStorei 的情况下更新纹理的子部分
OpenGL ES - 如何批量渲染 500 多个带有不同 alpha、旋转和缩放的粒子?
在 Android 中使用带有 OpenGL ES 的 VBO 性能不佳