CameraX实现使用RGBA方式解析数据原理

背景:Camera2不支持数据格式PixelFormat.RGBA_8888。然而,CameraX却支持使用RGBA_8888的方式输出数据流。那么,CameraX是怎么做到的呢???

1. 首先我们介绍一下为何Camera2不支持数据格式PixelFormat.RGBA_8888。

        我们通常配置ImageFormat时候,会通过以下代码配置。

ImageReader.newInstance(
      previewSize!!.width, previewSize!!.height,
      imageFormat, IMAGE_BUFFER_SIZE
)

        但是运行起来会报错:format 0x1 defined

2023-01-07 17:52:27.835 25993-26074 CameraDevice-JV-1       com.demo.scanner                   W  Stream configuration failed due to: createSurfaceFromGbp:413: Camera 1: No supported stream configurations with format 0x1 defined, failed to create output stream
2023-01-07 17:52:27.836 25993-26074 CameraCaptureSession    com.demo.scanner                   E  Session 0: Failed to create capture session; configuration failed

2. CameraX是怎么做到的呢???

首先在代码中配置的数据流处理方式OUTPUT_IMAGE_FORMAT_RGBA_8888

 2.1. 我们发现,当创建CaptureSession时,配置的ImageFormat,分别是34(ImageFormat.PRIVATE)35(ImageFormat.YUV_420_888)

 

  2.2. 解析时候,是将YUV转换为RGBA

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值