【问题标题】:Load Specific Image From Path After It Was Saved To Camera Roll保存到相机胶卷后从路径加载特定图像
【发布时间】:2019-10-19 20:39:22
【问题描述】:

我使用 UIImagePickerController 将图像保存到相机拍摄的相册中。

UIImageWriteToSavedPhotosAlbum(myImage, self, #selector(saveimage(_:didFinishSavingWithError:contextInfo:)), nil)

图片已成功保存到相册,名称为IMAGE_4000.JPG。我想获得直接加载图像的路径,而不是选择它来实现基于 UI 的用户选择。

我尝试执行以下操作,但它只能让我访问应用程序的特定文件夹(如 /var/mobile/Containers/Data/Application/3C739746-<...>/Documents/) 而不是相册。

let path = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
let fullpath = path[0].appending("/IMAGE_4000.JPG")
let url = URL(fileURLWithPath: fullpath)
let imagedata = try? Data(contentsOf: url)
let imagefromstorage = UIImage(data: imagedata!)

所以我的问题是,通过 UIImageWriteToSavedPhotosAlbum 保存图像名称后如何获取图像名称以及访问它的相册路径,就像我在上面的代码 sn-p 中描述的那样?

【问题讨论】:

  • 使用照片框架获取相册
  • @karthikeyan 谢谢,我会看看照片框架。但是,问题仍然是如何首先获取图像名称?

标签: ios swift


【解决方案1】:

UIImageWriteToSavedPhotosAlbum 会将图像保存到Camera Roll 相册。这是一个不同的容器。

let path = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)

上面的语句会在你的 App 容器中搜索文件。

所以两者是不同的东西。

【讨论】:

  • 谢谢,我知道它们是不同的容器。问题是如何在将图像保存到相机胶卷后获取图像名称和图像路径?
  • 如果您使用名称“IMAGE_4000.JPG”保存图像,这并不意味着UIImageWriteToSavedPhotosAlbum 将使用您的名称。当您使用 Photos 框架获取图像时,它将返回不同的应用程序范围名称。
  • 只有在写入UIImageWriteToSavedPhotosAlbum之前在FileManager中写入图像,才能使用名称获取图像。
猜你喜欢
  • 2015-08-23
  • 1970-01-01
  • 2015-11-18
  • 1970-01-01
  • 2018-02-17
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多