【问题标题】:Display selected image in Flutter Web在 Flutter Web 中显示选定的图像
【发布时间】:2020-01-07 23:17:23
【问题描述】:

由于 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 Widget 中显示此输出?

我尝试使用Image.memory(base64Decode(file))。但文件无法解码。我怀疑是因为它不是原始 base64。

如何将此输出转换为可见图像?以及如何处理多张图片?

谢谢

【问题讨论】:

    标签: image file show flutter-web


    【解决方案1】:

    在你的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?

    【讨论】:

    猜你喜欢
    • 2021-11-04
    • 2021-05-20
    • 2020-01-21
    • 2020-12-16
    • 2020-08-01
    • 2020-03-13
    • 2020-12-20
    • 2021-11-19
    • 2021-10-08
    相关资源
    最近更新 更多