如何使用 URL 路径从 iOS 的照片库中获取图像?

Posted

技术标签:

【中文标题】如何使用 URL 路径从 iOS 的照片库中获取图像?【英文标题】:How to fetch an image from photo library of iOS using URL path? 【发布时间】:2018-05-23 17:50:02 【问题描述】:

我使用UIImagePickerControllerios 设备的照片库中选择图像。然后我使用 Core Data 将所选图像的 URL 路径保存在数据库中。现在我想使用保存的 URL 路径在另一个视图控制器中获取图像。如何使用 Objective-C 使用 URL 路径获取图像?有什么框架吗?我发现 ALAssets 框架已被弃用。

【问题讨论】:

@rmaddy 这不是一个有用的评论,因为这里的任何问题都可以通过说“看看 _____ 框架”来回答。 @AlecO OP 提到了已弃用的 ALAssets 框架。我只是发表评论来看看照片框架。这是一个评论。这不是答案。 【参考方案1】:

您不应保存图片的 URL,除非您将其保存到设备上更永久的位置。 UIImagePickerController 会为你提供一个临时图片的 URL,但在你关闭应用后它可能会被删除。

相反,在本地获取实际的 UIImage 并将其保存为带有 CoreData 的 blob。

let image = info[UIImagePickerControllerOriginalImage] as? UIImage
let imageData = UIImageJPEGRepresentation(image, 1.0)

从这里,将数据作为 blob 保存到 CoreData 数据库。这本身就是一篇文章,所以我不会在这里深入。参考http://pinkstone.co.uk/how-to-save-a-uiimage-in-core-data-and-retrieve-it/等资源

要从数据中检索该图像,请从 CoreData 获取 blob 并将其转换为 UIImage:

let imageData = < Core Data Fetch and Processing >
if let image = UIImage(data: imageData) 
    // Use your image

【讨论】:

以上是关于如何使用 URL 路径从 iOS 的照片库中获取图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swift 4 中从图像选择器获取照片本地 url

IOS:从照片路径获取 NSData

从照片中提取后,视频及其缩略图未按顺序保存

如何在 Instagram 照片 URL 中获取大照片

如何不从照片库 iOS 中获取屏幕截图

如何使用 iOS8+ 的 Objective-C 从 URL 下载照片并添加到特定相册?