gpt4 book ai didi

flutter - 使用ImagePicker从图库中保存Flutter图像

转载 作者:行者123 更新时间:2023-12-03 04:32:21 25 4
gpt4 key购买 nike

我具有此功能来保存图库中的图像并将其显示为背景:

Future _getImage() async {
// ImagePicker picker = ImagePicker();

PickedFile pickedFile = await picker.getImage(source: ImageSource.gallery);

if (pickedFile == null) return;
File tmpFile = File(pickedFile.path);
tmpFile = await tmpFile.copy(tmpFile.path);

setState(() {
if (pickedFile != null) {
//_image = File(pickedFile.path);
_image = tmpFile;
print('_image: $_image');
} else {
print('No image selected');
}
});
}
但是在我调用它之后,它说图像为空:
文件:“/ data / user / 0 / com.app.flutter / cache / image_picker5156338879856055755740.jpg”为空,无法加载为图像。
我不确定这里发生了什么,因为它可以在控制台中很好地打印图像,如下所示:
_image:文件:'/ data / user / 0 / com.app.flutter / cache / image_picker51563388798560557557.jpg
所以它意味着它在缓存中,但是由于某种原因,它返回为空并且不会将图像添加到后台:
 decoration: BoxDecoration(
image: DecorationImage(
image: _image == null
? MemoryImage(kTransparentImage)
: FileImage(_image),
fit: BoxFit.cover,
添加构建以防万一那里有一个错误,但我认为不存在。基本上,我只需要画廊中的图像即可持久并保留在应用程序中。
编辑:将setState()添加到代码中,但是它仍然不是持久性的,肯定有我缺少的东西:
Future _getImage() async {
// ImagePicker picker = ImagePicker();

PickedFile pickedFile = await picker.getImage(source: ImageSource.gallery);

if (pickedFile == null) {
return null;
}

Directory appDirectory = await getApplicationDocumentsDirectory();
File newImage = File(appDirectory.path + 'fileName');
newImage.writeAsBytes(File(pickedFile.path).readAsBytesSync());

setState(() {
_image = newImage;
print(newImage.path + ' test');
});
}

最佳答案

试试这个

Future _getImage() async {
ImagePicker picker = ImagePicker();
final pickedFile = await picker.getImage(source: ImageSource.gallery);
if (pickedFile == null) {
return null;
}
Directory appDirectory = await getApplicationDocumentsDirectory();
File newImage = File(appDirectory.path + 'fileName');
await newImage.writeAsBytes(File(pickedFile.path).readAsBytesSync());

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

关于flutter - 使用ImagePicker从图库中保存Flutter图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64725830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com