我想对原始图像进行图像处理,而不将其显示在屏幕上,这显然会降低性能。
根据这个帖子Taking picture from camera without preview的回答,这在Android1.5中是不可能的,但有人知道在Android4(API15级)中是否可能吗?
发布于 2013-09-30 23:15:59
因为我不被允许发表评论。关于Eddy的回答。您需要在NDK中处理这一点,因为使用Java接口将抵消任何性能优势。从性能的角度来看,不得不使用PixelBuffer绝对是疯狂的。从RGBA888到YUV的转换也需要用C语言完成。
不要试图使用TextureView,因为这样会更糟。在转换为YUV之前,您必须将像素复制到位图,然后从位图复制到数组。在全新的Nexus 7 2013上,仅此一项就占用了近30%的cpu利用率。
最有效的方法是直接与Camera.h对话,绕过所有Android API。您可以创建自己的缓冲区,并在YUV数据到达其他任何位置之前对其进行拦截。
发布于 2013-12-21 04:04:04
在屏幕上显示预览不会影响性能。在我遇到的所有设备上,相机输出都是“连接”到表面或纹理上的,不涉及CPU,所有的颜色转换和缩放都由专用硬件处理。
可能还有其他原因“隐藏”预览,但请记住,出于隐私和安全原因,API最初的目的是确保最终用户看到从摄像头到应用程序的任何内容。
https://stackoverflow.com/questions/10775942
复制相似问题