Camera2 - 获取静态捕捉位图的最有效方法

Elt*_*kes 6 android bitmap android-camera2

首先问一个问题:在ImageReader知道我总是将捕获转换为 的情况下,初始化和使用camera2 api 的最有效方法是什么Bitmap

我正在尝试 Android Camera2 示例,一切都运行得很好。然而,出于我的目的,我总是需要对捕获的静态图像执行一些后期处理,为此我需要一个Bitmap对象。目前我正在使用来自(我正在解释)的BitmapFactory.decodeByteArray(...)字节。ImageReader.acquireNextImage().getPlanes()[0].getBuffer()虽然这可以接受,但我仍然觉得应该有一种方法可以提高性能。捕获的内容被编码ImageFormat.Jpeg,需要再次解码才能得到Bitmap,这似乎是多余的。理想情况下,我会获取它们PixelFormat.RGB_888并使用将其复制到位图Bitmap.copyPixelsFromBuffer(...),但使用该格式初始化似乎并不ImageReader具有可靠的设备支持。YUV_420_888可能是另一种选择,但环顾四周,似乎需要跳过一些环节才能解码为Bitmap. 有推荐的方法吗?

ema*_*ndt 0

使用不同的 ImageFormat 更改 Imagereader 实例,如下所示:

ImageReader.newInstance(width, height, ImageFormat.JPEG, 1)