如何在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;
});
您还应该注意,您可以使用ImagePicker
从image.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 中使用 Multi Image Picker 选择图像后如何获取图像路径?