我有一个 UIImagePickerController
让用户选择一个图像,因为我想上传这个图像我需要图像“localURL”。
有没有办法从我的选择器中获取此 localURL。
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
imagePicker.delegate = self
}
@IBAction func loadImageButtonTapped(sender: AnyObject) {
imagePicker.allowsEditing = false
imagePicker.sourceType = .PhotoLibrary
presentViewController(imagePicker, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
imageView.contentMode = .ScaleAspectFit
imageView.image = pickedImage
}
dismissViewControllerAnimated(true, completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
dismissViewControllerAnimated(true, completion: nil)
}
最佳答案
您不会获得任何本地 URL,因为您无权访问应用容器之外的图像。
您不需要传输图像的文件,NSData
应该完全没问题。我建议你像这样将它转换为 NSData
let imageData: NSData = UIImagePNGRepresentation(pickedImage)
更新:如我所说,您将无权访问实际文件。将图像作为文件的唯一方法是自己存储它。
在您的更新中,您展示了一些自己保存图像的代码,这是有道理的。如果在设置“imageView.image”时使用“pickedImage”,而不是写入图像文件并读取它,将其转换为“UIImage”,然后将其设置为“imageView.image”,那么性能会更高
我还没有真正弄明白,为什么你需要图像作为文件而不是简单地将“NSData”发送到你的服务器。也许这是一个值得你考虑的选择
关于ios - UIImagePickerController 使用 Swift 获取图像 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35275318/