ios - UIImagePickerController 使用 Swift 获取图像 URL

标签 ios swift image file

我有一个 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/

相关文章:

iphone - CAGradientLayer 不自动调整大小

ios - Swift 4 中的模态弹出窗口

javascript - 如何使用 Google Static Maps API 获取 map 图像的静态 URL?

html - twitter.com 的缩放背景图片是如何实现的?

php - 点击图片上传

iOS:推送通知已停止工作

ios - Apple 的静默推送通知能否在后台启动我的应用程序?

ios - 应用内购买的自动更新选项不可见

ios - OAuth 集成错误

ios - 查找当前加速度计值