如何在 Swift 中使用 URL 从库中获取图像? [复制]
Posted
技术标签:
【中文标题】如何在 Swift 中使用 URL 从库中获取图像? [复制]【英文标题】:How to get image from library with URL in Swift? [duplicate] 【发布时间】:2021-08-08 08:57:36 【问题描述】:我有一个此 URL file:///var/mobile/Media/DCIM/101APPLE/IMG_1426.JPG
。如何使用它从库中获取图像?
我从上次运行该应用程序时获得了该 URL。现在我想只获取这个图像而不从库中获取所有图像。
我尝试使用:
if let url = URL(string: url)
let imgData = NSData(contentsOf: url)
let image = UIImage(data: imgData! as Data)
但是我收到了这个错误:
Error Domain=NSCocoaErrorDomain Code=257 "The file “IMG_1426.JPG” couldn’t be opened because you don’t have permission to view it." UserInfo=NSFilePath=/var/mobile/Media/DCIM/101APPLE/IMG_1426.JPG, NSUnderlyingError=0x28200bfc0 Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"
我从这里得到网址:
let options: PHContentEditingInputRequestOptions = PHContentEditingInputRequestOptions()
options.canHandleAdjustmentData = (adjustmeta: PHAdjustmentData) -> Bool in
return true
self.requestContentEditingInput(with: options, completionHandler: (contentEditingInput: PHContentEditingInput?, info: [AnyHashable : Any]) -> Void in
if let url = contentEditingInput?.fullSizeImageURL
//this
)
我不想将那张照片保存在我的应用文档中,我该如何实现?或者至少我如何打开显示该图像的照片应用程序? 谢谢。
【问题讨论】:
您不应该随意访问任何文件。征得用户同意。 我已授予我的应用访问照片库和相机的权限 图片库中没有图片;有资产。而且他们没有文件 URL;他们有本地标识符。要获取单张照片,请使用其标识符。 【参考方案1】:您已授予您应用程序访问照片库和相机的权限,但您正在尝试 读取文件。那是不同的。我使用这些权限成功测试了以下代码:
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
<key>com.apple.security.files.bookmarks.app-scope</key>
<true/>
if let url = URL(string: "file:///private/var/mobile/workingdog.png")
do
let imgData = try Data(contentsOf: url)
if let image = UIImage(data: imgData)
print("\n---> image: \(image)")
catch
print("error")
【讨论】:
以上是关于如何在 Swift 中使用 URL 从库中获取图像? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
基于 Swift 中的 creationDate 从库中获取所有照片 [更快的方式?]