我的flutter应用程序使用camera
包来拍照,我将其保存到应用程序的数据目录(从path_provider
和getApplicationDocumentsDirectory()
函数获取)。
如何将此图像文件保存到手机照片库中?我注意到image_picker
包允许从库中读取 ,但我该怎么写呢?
答案 0 :(得分:6)
不幸的是,flutter目前没有公开该功能。它似乎确实是插件的候选者。
如果你有足够的动力,可以使用platform channels从颤动到原生的Android(和iOS)代码进行通信,从中可以完全访问图库。如果你把它变成一个插件并发布它,可以获得奖励积分!
答案 1 :(得分:3)
我做了插件。如果您愿意,请尝试一下。
https://pub.dartlang.org/packages/image_downloader#-readme-tab-
更新
我将解释如何使用。
将此添加到您程序包的pubspec.yaml文件中:
dependencies:
image_downloader: ^0.9.0
然后,为每个设备指定权限。
只需输入以下内容,图像将被保存。
ImageDownloader.downloadImage(url);
答案 2 :(得分:2)
答案 3 :(得分:2)
https://pub.dev/packages/gallery_saver
此插件将图像和视频保存到图库/照片中。
您只需为其提供从Camera获得的临时文件的路径(甚至也可以使用网络url):
GallerySaver.saveVideo(recordedVideo.path);
GallerySaver.saveImage(recordedImage.path);
答案 4 :(得分:0)
我一直在寻找这个答案,但幸运的是,我能够使用此代码将文件保存到图库:
ByteData byteData = await rootBundle.load('assets/images/example.png');
File file = await File('/storage/emulated/0/Android/media/<your app package>/<App title/folder>/example.png').create(recursive: true);
await MediaStore.saveImage(byteData.buffer.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));
这会将您的图像保存到设备和设备库中。
这只适用于安卓
谢谢。