如何在一个表面/Gl视图相机预览实时模糊



我一直在尝试如何在Android相机的视频上应用模糊,但只能找到应用于图像的模糊影响。我希望能够实时模糊我从别人那里收到的相机馈送,或者我自己的视频预览屏幕,在SurfaceView或GlSurfaceView上,想知道这是否可能?由于

我假设您想要的是这样的东西。(这段视频有点老;像拉伸这样的问题已经修复。)

如果是,Grafika的"显示+捕捉相机"活动显示你想要的。这个想法是将相机捕获到一个SurfaceTexture,然后使用GLES片段着色器渲染该纹理。Grafika类使用3x3滤镜内核,在大多数设备上可以处理30fps的视频。(这在最初的Nexus 7上相当慢,但应该可以通过优化着色器来纠正。)

我建议使用SurfaceView而不是GLSurfaceView(参见其他活动,例如:"连续捕获"或"相机纹理",因为自己管理EGL使生活更轻松。

最新更新