在Bloutter中将Blob显示为图像

时间:2017-08-07 14:49:16

标签: image dart blob flutter

有谁知道如何使用Flutter将Blob转换为图像?看起来Flutter中没有'dart:html'库。任何帮助表示赞赏。谢谢!

4 个答案:

答案 0 :(得分:8)

如果有人有兴趣,我找到了解决方案:

从JSON中抓取blob:

var blob = yourJSONMapHere['yourJSONKeyHere'];

var image = BASE64.decode(blob); // image是Uint8List

现在,在Image.memory

中使用图像

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

这对我有用!

答案 1 :(得分:1)

未找到!!!对于我。

var image = BASE64.decode(blob);

未找到!!!对于我。

我找到了2020年-10月的解决方案:

import 'dart:convert';
import 'dart:typed_data';

从JSON中获取斑点:

var blob = yourJSONMapHere['yourJSONKeyHere'];

Uint8List image = Base64Codec().decode(blob); // image is a Uint8List

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

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

这对我有用!

答案 2 :(得分:1)

自 2021 年 4 月 Flutter 2.0 引入空安全以来,确保您的代码是空安全的非常重要。这是上面安德烈·阿拉亚 (Andrey Araya) 对答案的改进。由于 var 不可为空,因此我使用了 dynamic 关键字:

// Import dart:convert to help with the decoding of the blob
import 'dart:convert';

dynamic? blob = yourJSONMapHere['yourJSONKeyHere']; // Question mark after the keyword to make it nullable

// Declare variable to save the image later
var image;

if (blob != null) {
   // Only decode if blob is not null to prevent crashes
   image = base64.decode(blob);
}

然后您可以使用 Image.memory 小部件渲染您的图像。

Image.memory(image);

答案 3 :(得分:0)

E/flutter (8757): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] 未处理的异常:“Blob”类型不是“String”类型的子类型

当我们使用“var image=base64.decode(blob);”时会出现这种错误