I'm using UIImagePickerController
to pick image i want path of selected image but I can't get it.
what I'm trying in code:
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)
}
}
By above code I can only get the name of image. I want path of image.
If you print the info
object you will see all available keys for accessing the values of this dictionary. The image path key is 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)
}