【发布时间】:2019-08-13 13:14:17
【问题描述】:
当我们在flutter中处理相机时,我们使用Camera插件。
它有.startImageStream 方法返回CameraImage cameraImage 数据类型。
在 iOS 中,cameraImage.format 是 bgra8888。
对于 android cameraImage.format 是 yuv420。
在将这些格式编码为 JPEG 或 PNG 之前,我们需要对字节进行一些处理并将每个字节放入图像缓冲区,然后在 JpegEncoder 中使用。
对于android,本期讨论并实现cameraImage(yuv420) to List<int>:https://github.com/flutter/flutter/issues/26348#issuecomment-462321428
问题是,我们如何从bgra8888cameraImage构造flutter Image(jpeg|png)?
【问题讨论】:
-
你能给我一个样本 bgra8888 缓冲区数据以便我测试吗?
-
我不知道 bgra8888,但在我的一个应用程序中,我使用了 multi_image_picker 包,它从 iOS 照片应用程序和相机(如指定)中选择图像。然后您可以根据需要将其转换为字节或 List
。示例代码: ByteData byteData = await asset.requestOriginal(); List<int> imageData = byteData.buffer.asUint8List();和here 是示例实现。
标签: image-processing flutter dart camera