如何在颤动中将 Blob 转换为图像

Posted

技术标签:

【中文标题】如何在颤动中将 Blob 转换为图像【英文标题】:How to Transform a Blob to An Image in flutter 【发布时间】:2021-07-19 08:11:13 【问题描述】:

我想显示存储在 mysql 数据库中的图像 问题是我无法将 blob 格式转换为 Uint8list ;我搜索并找到了灵魂,但它们都不起作用 从 JSON 中获取 blob:

var blob = yourJSONMapHere['yourJSONKeyHere'];

var image = BASE64.decode(blob); // 图像是一个 Uint8List

现在,在 Image.memory 中使用图像

new Container(child: new Image.memory(image));

这个灵魂解决方案不起作用,因为 base64.decode 需要一个字符串源而不是一个 blob 文件来转换

【问题讨论】:

【参考方案1】:

不知道这是否与此特定案例有关,但与 Cloud Firestore 有类似问题。

以这种方式创建用于存储的 blob:

Blob myBlob = Blob(await audioFile.readAsBytes());

像往常一样在一个字段中保存到 Firestore 然后试图读回它,但无法弄清楚如何从我从 Firestore 回来的 blob 中获取 Uint8List。

我的解决方案:

//extract blob from field of Firestore document
Blob audioBlob = audioDocFromDb.get("fieldName");

//use .bytes on blob from this source
//package:cloud_firestore_platform_interface/src/blob.dart
Uint8List audioBytes = audioBlob.bytes;

这对我有用。 就我而言,我正在打包录制的音频并尝试播放它。

【讨论】:

【参考方案2】:

我也遇到了这个问题,经过多次尝试,我现在知道了解决方案: 别忘了点赞!

Uint8List image = Uint8List.fromList(blob.toBytes());

Image.memory(图像);

【讨论】:

以上是关于如何在颤动中将 Blob 转换为图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在硒 c# 中将 Blob 图像转换为位图图像

如何在颤动中将 List<File> 转换为 List<Asset>

如何在 JavaScript 中将 Blob 转换为文件

如何在颤动中将 List<Asset> 转换为 List<File>

在 Javascript 中将图像 url 转换为 blob

DPFPApi 如何在 qt5 中将 data_blob 转换为 qpixmap