有谁知道如何使用Flutter将Blob转换为图像?看起来Flutter中没有'dart:html'
库。任何帮助表示赞赏。谢谢!
答案 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);”时会出现这种错误