我的flutter应用程序使用camera
包来拍摄照片,我保存到应用程序的data目录(从path_provider
和getApplicationDocumentsDirectory()
函数获得)。
如何将此图像文件保存到手机照片库中?我注意到image_picker
包允许从gallery中 * 阅读 *,但是我如何向它写入呢?
我的flutter应用程序使用camera
包来拍摄照片,我保存到应用程序的data目录(从path_provider
和getApplicationDocumentsDirectory()
函数获得)。
如何将此图像文件保存到手机照片库中?我注意到image_picker
包允许从gallery中 * 阅读 *,但是我如何向它写入呢?
9条答案
按热度按时间ve7v8dk21#
https://pub.dev/packages/gallery_saver
这个插件保存图像和视频到画廊/照片.
你只需要提供你从相机得到的临时文件的路径(甚至是网络URL,它也可以工作):
bgtovc5b2#
不幸的是,flutter目前还没有公开该功能。它看起来确实像一个插件的候选人。
如果你有足够的动力,你可以使用platform channels从flutter到原生Android(和iOS)代码进行通信,从那里你可以完全访问图库。如果你把它做成一个插件并发布它,你会得到额外的分数!
j5fpnvbx3#
有一个插件支持这个。
https://pub.dev/packages/image_gallery_saver
我已经测试过了,它工作正常。
jljoyd4f4#
我做了插件。如果你喜欢的话,请试试。
https://pub.dartlang.org/packages/image_downloader#-readme-tab-
更新
我将解释如何使用。
将以下内容添加到您的软件包的pubspec.yaml文件中:
然后,为每个设备指定权限。
只需输入以下内容,图像将被保存。
5t7ly7z55#
我一直在寻找这个答案一段时间,但幸运的是,我能够保存文件到画廊与以下代码:
这会将您的图像保存到设备和设备图库中。
仅适用于Android
谢谢。
esyap4oy6#
有一个软件包,您可以使用它来更新画廊,通过提供图像或视频的路径。与其他软件包相比,它的优点是即使在SD卡中也可以保存文件。当您尝试将已保存到设备的媒体添加到图库时,该文件将不会被保存两次。这是包的链接。https://pub.dev/packages/media_scanner
仅限Android
dl5txlt97#
我不得不搜索了很多,但我发现了一个非常有用的解决方案,将图像保存在手机的照片库中,并获得绝对路径,以您想要的方式使用它。在这个例子中,我使用了从照片库中保存图像获得的结果,但是它也可以读取其他文件,显然可以进行必要的更改,我希望它能帮助您uri_to_fileimage_gallery_saver
sshcrbum8#
有一个解决办法,我通过指定路径到“/storage/emulated/0/DCIM/YOUR_FOLDER/YOUR_FILE_NAME”,然后它将被保存在支持包目录之外,然后图像出现在画廊中。您可以使用任何图像保护插件只是提供硬编码的路径。
7vux5j2d9#
这对我很有效-
一旦你得到path,你可以这样保存