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;
}
此代码会将您的图像直接保存到应用程序库中,并且不会在屏幕上显示任何内容
我仍在为这个烦人的错误而苦恼。我有 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;
}
此代码会将您的图像直接保存到应用程序库中,并且不会在屏幕上显示任何内容