Image 如何将图像转换为字节,然后在flutter中将其再次转换为图像?

Image 如何将图像转换为字节,然后在flutter中将其再次转换为图像?,image,flutter,base64,Image,Flutter,Base64,我正在尝试使用图像选择器插件。我可以使用这个插件获取图像作为文件。我需要将此图像转换为字节并发送到api。因此,我尝试使用dart:convert将图像转换为字节字符串。现在,当我解码时,我得到一个Uint8List类型。如何将其转换为文件并显示在Image.file()中。我不能从这里开始。有人能帮我吗 假设我从一个api响应中得到这个解码字节,如何将它们转换为显示在图像小部件中 这是我到目前为止试过的代码 var image = await ImagePicker.pickImage(sou

我正在尝试使用图像选择器插件。我可以使用这个插件获取图像作为文件。我需要将此图像转换为字节并发送到api。因此,我尝试使用dart:convert将图像转换为字节字符串。现在,当我解码时,我得到一个Uint8List类型。如何将其转换为文件并显示在Image.file()中。我不能从这里开始。有人能帮我吗

假设我从一个api响应中得到这个解码字节,如何将它们转换为显示在图像小部件中

这是我到目前为止试过的代码

var image = await ImagePicker.pickImage(source: ImageSource.camera);

    setState(() {
      imageURI = image;
      final bytes = image.readAsBytesSync();

      String img64 = base64Encode(bytes);
      print(bytes);
      print(img64);

      final decodedBytes = base64Decode(img64);
      print(decodedBytes);
      //consider i am getting this decodedBytes i am getting from a api response, how can i convert them to display in a Image widget 
    });
我使用writeAsBytesSync()获得此错误

Unhandled Exception: FileSystemException: Cannot open file, path = 'decodedimg.png'

由于无法写入应用程序沙盒中的任意位置,因此会出现此错误。您可以使用查找临时目录

但是在您的情况下,只需使用
image
对象,
pickImage
已经返回了一个File对象,所以只需使用
image.File(image)

如果要将base64解码到临时目录中,可以使用:

import'package:path_provider/path_provider.dart';
导入“package:path/path.dart”作为路径;
Future writeImageTemp(字符串base64Image,字符串imageName)异步{
final dir=await getTemporaryDirectory();
wait dir.create(递归:true);
final tempFile=File(path.join(dir.path,imageName));
等待tempFile.writeAsBytes(base64.decode(base64Image));
返回临时文件;
}
使用pubspec.yaml:

依赖项:
路径:^1.6.0
路径提供程序:^1.6.7

我将从api获得base64字符串,我需要将它们转换为某种格式并显示在Imgae小部件中。怎么做@herbert@Anu使用base64.decode()对其进行解码,在临时目录中创建一个文件(如果每次都下载新文件,则在documents目录中),然后将其写入。。你就完蛋了。。e、 g.`final tempDir=await getTemporaryDirectory()
;create(递归:true);final file=file(path.join(tempDir.path,'tmp.png');wait file.writeBytes(字节)
getTemporaryDirectory
来自--
path.join
使用:
import'package:path/path.dart'作为路径你能在你的答案中添加代码snippent吗@herbert@Anu我添加了一个示例,如何将base64转换为二进制图像并返回一个临时文件,您可以使用
image.file