ios - 没有获取图像路径

标签 ios swift uiimagepickercontroller phasset

我正在使用 UIImagePickerController 来选择图像我想要所选图像的路径,但我无法获取它。

我在代码中尝试的内容:

func handleImg() {
    let picker = UIImagePickerController()
    picker.delegate = self
    picker.allowsEditing = true
    present(picker, animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    var selectedImageFromPicer : UIImage?
    if let editedImage = info["UIImagePickerControllerEditedImage"] as? UIImage {
        selectedImageFromPicer = editedImage
    } else if let originalImage = info["UIImagePickerControllerOriginalImage"] as? UIImage {

        selectedImageFromPicer = originalImage
    }

    if let selectedImage = selectedImageFromPicer {
        img.image = selectedImage
    }
    if let imageURL = info[UIImagePickerControllerReferenceURL] as? URL {

        let result = PHAsset.fetchAssets(withALAssetURLs: [imageURL], options: nil)
        let asset = result.firstObject
        var imgStr = asset?.value(forKey: "filename")
        print(imgStr!)
    }
    dismiss(animated: true, completion: nil)
    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        print("canceled picker")
        dismiss(animated: true, completion: nil)
    }
}

通过上面的代码我只能得到图像的名称。我想要图片路径。

最佳答案

如果您打印 info 对象,您将看到所有可用于访问该字典值的键。图片路径键为UIImagePickerControllerImageURL

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    guard let imageUrl = info["UIImagePickerControllerImageURL"] as? URL else {
        return
    }
    print(imageUrl.path) // prints the path
    picker.dismiss(animated: true, completion: nil)
}

关于ios - 没有获取图像路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46619643/

相关文章:

ios - 如何在 Swift 中通过按下按钮来遍历函数

ios - UIImagePickerController 在相机胶卷中打开

ios - Objective-C中的“发现扩展时遇到的错误”

swift - Firestore getDocument 总是返回文档,即使文档不存在,文档不完整?

swift - 如何更改左栏按钮项目的大小?

ios - Init 方法未显示在 Swift Bridging header 中

ios - 两种同名字体

ios - 单击主视图 Controller 中的按钮以将录制的视频保存在容器 View 中?

ios - CoreBluetooth 外围服务在重新连接/恢复时变为空

ios - 我的撇号变成了,Äô