由于 flutter web 处于技术预览阶段,因此所有插件都无法正常工作。
我的任务是显示我们选择的图像。 我有以下选择器
_startFilePicker() async {
InputElement uploadInput = FileUploadInputElement();
uploadInput.multiple = true;
uploadInput.click();
uploadInput.onChange.listen((e) {
// read file content as dataURL
final files = uploadInput.files;
if (files.length == 1) {
final file = files[0];
final reader = FileReader();
reader.onLoadEnd.listen((e) {
_handleResult(reader.result);
});
reader.readAsDataUrl(file);
}
});
}
void _handleResult(Object result) {
setState(() {
images.add(result);
});
}
result
给我输出
data:image/jpeg;base64,/9j/4AAQSkZJRg....
如何在图像小部件中显示此输出?
我尝试使用 Image.memory(base64Decode(file))
。但是文件无法解码。我怀疑是因为它不是原始的 base64。
如何将此输出转换为可见图像?以及如何处理多张图片?
谢谢
最佳答案
在你的base64字符串中,排除“data:image/jpeg;base64”,只保留“/9j/4AAQSkZJRg...”
将您的 base64 字符串粘贴到在线图像转换器 https://codebeautify.org/base64-to-image-converter ,以确保您的 base64 字符串正确
_base64 = "/9j/4AAQSkZJRg...";
解码
Uint8List bytes = base64Decode(_base64);
并显示图像
Image.memory(bytes);
你也可以引用这个How to convert BASE64 string into Image with Flutter?
关于image - 在 Flutter Web 中显示所选图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57798948/