作者:Scarlett_girl | 来源:互联网 | 2023-05-22 17:02
我正在尝试使用这里提出的camera2 api实现相机预览图像数据处理:使用Android L和Camera2 API进行相机预览图像数据处理.
我使用onImageAvailableListener成功接收回调,但是为了将来的处理,我需要从YUV_420_888 android.media.Image获取位图.我搜索了类似的问题,但没有一个帮助.
你能否建议我如何将android.media.Image(YUV_420_888)转换为Bitmap,或者有更好的方法来监听预览帧?
1> Settembrini..:
有关更简单的解决方案,请参见此处的实现:
将YUV 420_888转换为位图(完整代码)
该函数以media.image作为输入,并基于y,u和v平面创建三个RenderScript分配。它遵循Wikipedia插图中所示的YUV_420_888逻辑。
但是,这里我们为Y,U和V通道提供了三个单独的图像平面,因此我将它们视为三个字节[],即U8分配。y分配的大小为宽度*高度字节,而u和v分配的大小为宽度*高度/ 4字节,这反映了每个u字节覆盖4个像素(与每个v字节同等)的事实。