在 iOS Swift 中从设备获取图像的 URL 路径
Posted
技术标签:
【中文标题】在 iOS Swift 中从设备获取图像的 URL 路径【英文标题】:Getting the URL Path of an Image from device in iOS Swift 【发布时间】:2019-04-22 05:30:23 【问题描述】:我正在尝试在实际设备而不是模拟器上使用PHImageManager
获取图像路径。
我正在使用photoUrl = info!["PHImageFileURLKey"] as? URL
获取网址。
现在,当我在模拟器上运行代码时,我的 info 中有 9 个键/值对。但是当我在实际设备上运行相同的代码时,我只得到 3 个键/值对,因此我没有得到 photoUrl,我的应用程序崩溃了
这是我一直在尝试实现的代码,
var selectedPhotos : [URL] = []
func pickerViewController(_ pickerViewController: TatsiPickerViewController, didPickAssets assets: [PHAsset])
self.selectedPhotos.removeAll()
let imageManager = PHImageManager.default()
let options = PHImageRequestOptions()
options.deliveryMode = .highQualityFormat
options.resizeMode = .exact
options.isSynchronous = true
let count = assets.count
for asset : PHAsset in assets
let imageSize = CGSize(width: asset.pixelWidth,
height: asset.pixelHeight)
/* For faster performance, and maybe degraded image */
imageManager.requestImage(for: asset,
targetSize: imageSize,
contentMode: .aspectFill,
options: options,
resultHandler:
(image, info) -> Void in
var photoUrl : URL!
photoUrl = info!["PHImageFileURLKey"] as? URL
self.selectedPhotos.append(photoUrl)
)
【问题讨论】:
【参考方案1】:使用asset.requestContentEditingInput
insted of asset.requestImagebelow
从PHAsset
检索图像URL
:
func pickerViewController(_ pickerViewController: TatsiPickerViewController, didPickAssets assets: [PHAsset])
let count = assets.count
for asset : PHAsset in assets
asset.requestContentEditingInput(with: PHContentEditingInputRequestOptions()) (eidtingInput, info) in
if let input = eidtingInput, let photoUrl = input.fullSizeImageURL
self.selectedPhotos.append(photoUrl)
【讨论】:
很高兴听到。编码愉快。 我可以使用这些选定的照片(URL)进行上传吗? 是的,你可以使用它以上是关于在 iOS Swift 中从设备获取图像的 URL 路径的主要内容,如果未能解决你的问题,请参考以下文章
在幻灯片 iOS APP 中从 URL Xcode 9 加载图像