我正在将我的 Firebase 数据库中保存的图像转换为 Base64,并希望进行解码和编码。我研究了类似的问题,但仍然遇到错误。这是我目前所拥有的?
var image1 = String;
var pic = event.snapshot.value['image'];
var photo = BASE64.decode(pic);
image1 = photo;
我收到以下错误...
A value of type "List<int>" cannot be assigned to a variable of type "Type"
如果您可以提供将图像编码为 Base64 的反向过程,以便可以将它们保存回 Firebase,我们将不胜感激。
***更新
这是我更新的代码,但仍然抛出错误。
image1 = event.snapshot.value['image'];
var image = BASE64.decode(image1.toString());
new Image.memory(image),
错误是……
FormatException: Invalid Length must be a multiple of 4
最佳答案
使用 'dart:convert'
包有一个更简单的方法
Image.memory(base64Decode(base64String));
实现和一些有用的方法:
import 'dart:convert';
import 'dart:typed_data';
import 'package:flutter/widgets.dart';
Image imageFromBase64String(String base64String) {
return Image.memory(base64Decode(base64String));
}
Uint8List dataFromBase64String(String base64String) {
return base64Decode(base64String);
}
String base64String(Uint8List data) {
return base64Encode(data);
}
https://stackoverflow.com/questions/46145472/