如何在Flutter中保存图像文件?使用Image_picker插件选择文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Flutter中保存图像文件?使用Image_picker插件选择文件相关的知识,希望对你有一定的参考价值。

我真的很困惑。颤抖是很棒的,但有些时间会让人头疼

所有代码都完成了。所选文件也在预览中显示但我尝试将该文件保存在本地android存储中。我无法获得成功

  Future getImage(ImageSource imageSource) async {
    var image = await ImagePicker.pickImage(source: imageSource);

    setState(() {
      _image = image;
    });
  } 

现在使用此代码和_image中的文件选择文件我尝试使用path_provider和dart.io存储,但我无法获得保存方法。

答案

使用await ImagePicker.pickImage(...),你已经在正确的轨道上,因为该函数返回一个File

File类有一个copy method,您可以使用它来复制文件(已经通过相机或躺在图库中保存在磁盘上)并将其放入您的应用程序文档目录中:

// using your method of getting an image
final File image = await ImagePicker.pickImage(source: imageSource);

// getting a directory path for saving
final String path = await getApplicationDocumentsDirectory().path;

// copy the file to a new path
final File newImage = await image.copy('$path/image1.png');

setState(() {
  _image = newImage;
});

您还应该注意,您可以使用ImagePickerimage.path获取图像文件的路径,newImage.path还将包含您可能要提取的文件结尾,您可以使用// Step 1: Retrieve image from picker final File image = await ImagePicker.pickImage(source: imageSource); // Step 2: Check for valid file if (image == null) return; // Step 3: Get directory where we can duplicate selected file. final String path = await getApplicationDocumentsDirectory().path; // Step 4: Copy the file to a application document directory. final var fileName = basename(file.path); final File localImage = await image.copy('$path/$fileName'); 保存图像路径。

另一答案

@creativecreatorormaybenot答案确实很有帮助,但它错过了一个重要部分,即检索图像供以后使用。

保存图像

// Step 1: Save image/file path as string either db or shared pref
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('test_image', localImage.path)

// Step 2: Loading image by using the path that we saved earlier. We can create a file using path 
//         and can use FileImage provider for loading image from file.
CircleAvatar(
          backgroundImage: FileImage(File(prefs.getString('test_image')),
          radius: 50,
          backgroundColor: Colors.white)

提示:您可以使用basename(file.path)从原始文件中检索文件名。确保导入'package:path / path.dart';

检索/加载图像

qazxswpoi

以上是关于如何在Flutter中保存图像文件?使用Image_picker插件选择文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中将图像转换为文件?

如何在flutter中使用rootBundle加载图片?

在 Flutter 中使用 Multi Image Picker 选择图像后如何获取图像路径?

Flutter:如何将 Canvas/CustomPainter 保存到图像文件中?

Flutter 如何将图像文件保存到图库中的新文件夹?

如何在颤动中将 ImageCache 保存到磁盘?