Base 64 转换为 Image 并得到错误 Invalid character (at character 6)

Base 64 convert to Image and get the error Invalid character (at character 6)

我仍在为这个烦人的错误而苦恼。我有 base64 字符串,我想将其转换为图像。这是最简单的代码片段,它完全符合我的要求(至少,我在 SO 的不同答案和代码示例中看到了它)。我收到错误:

Invalid character (at character 6)

我的代码是:

final String encodedStr = 'https://securelink.com/cameratypes/picture/13/true';
    Uint8List bytes = base64.decode(encodedStr);

我想显示图片:

 Image.memory(bytes)

终于,我找到了解决方案,我不知道它是否重要,是否对任何像我一样挣扎的人都有用,但我会提供帮助。所以,这将是简单快捷的,因为我已经将我的图像转换为需要的格式(我的图像是 base64 格式),当我试图再次将它转换为 String 时我犯了一个愚蠢的错误,因为它已经是一个 String 而我需要 Uint8List 格式。旁注:如果您的 api 开发人员说它应该接受 cookie 或任何类型的身份验证,那应该是这样。

代码:

Future<String> _createFileFromString() async {
  final response = await http.get(
      Uri.parse(
        'your link here',
      ),
     headers: {
        'cookie':
            'your cookie here'
      });

  final Uint8List bytes = response.bodyBytes;
  String dir = (await getApplicationDocumentsDirectory()).path;
  String fullPath = '$dir/abc.png';
  print("local file full path ${fullPath}");
  File file = File(fullPath);
  await file.writeAsBytes(List.from(bytes));
  print(file.path);

  final result = await ImageGallerySaver.saveImage(bytes);
  print(result);

  return file.path;
}

此代码会将您的图像直接保存到应用程序库中,并且不会在屏幕上显示任何内容