ios - 在 swift 4 中从相机中获取图像路径后获取图像路径

标签 ios xcode swift4

我有一个按钮,显示 ios 中的默认相机屏幕,当我拍照时,它会保存在手机中,之后我想获取

UIImagePickerControllerReferenceURL

因为我想将照片发送到我的服务器,当我尝试获取 UIImagePickerControllerReferenceURL 时,应用程序崩溃并收到 nil 值的错误

这是我的代码:

@objc func take_photo(){
        if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera){
            let camera_picker = UIImagePickerController()
            camera_picker.delegate = self
            camera_picker.sourceType = .camera
            camera_picker.allowsEditing = false
            self.present(camera_picker, animated: true, completion: nil)
        }
    }


func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        if let img_original = info["UIImagePickerControllerOriginalImage"] as? UIImage{
            pickerImg_seleccionada = img_original
        }
        UIImageWriteToSavedPhotosAlbum(pickerImg_seleccionada!, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)
        if let img_seleccionada = pickerImg_seleccionada {
            img.display(image: img_seleccionada)
            img.contentMode = .scaleAspectFit
            let imgData: NSData = NSData(data: UIImageJPEGRepresentation((pickerImg_seleccionada)!, 0.9)!)
            let imageSize: Int = imgData.length
            img_size = Double(imageSize) / (1024.0 * 1024.0)
            rep_imagen = UIImageJPEGRepresentation((pickerImg_seleccionada)!, 0.9)
            let url_imagen = info["UIImagePickerControllerReferenceURL"] as! URL //here is the error
            image_name = url_imagen.lastPathComponent
        }

        dismiss(animated: true, completion: nil)
    }

    @objc func image(_ image: UIImage, didFinishSavingWithError error: Error?, contextInfo: UnsafeRawPointer) {
        if let error = error {
            // we got back an error!
            print("no guardada")
        } else {
            print("guardada")
        }
    }

我该如何解决这个问题?,我认为这个过程很好,因为图像已存储,我可以获得img_size和rep_imagen,但不能获取url_imagen

提前致谢

最佳答案

当用户使用图像选择器 Controller 捕获照片时,信息字典中没有 UIImagePickerControllerReferenceURL 键。没有任何内容保存到磁盘上。捕获的图像是您已经拥有的 UIImagePickerControllerOriginalImage。仅此而已。

关于ios - 在 swift 4 中从相机中获取图像路径后获取图像路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55330852/

相关文章:

ios - 在执行 segue 之前如何显示加载指示器?

ios - Google 和 Facebook 在同一个应用程序中登录

xcode - 在 Swift 中显示/隐藏图像

swift - 在 Swift 中,如何在对象创建后立即调用函数

ios - 无法将 NSAttributedString.DocumentAttributeKey 类型的值转换为 .DocumentReadingOptionKey

ios - 如何在xcode中添加将值传递给文本框的按钮

ios - EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)从 bundle 加载时出错

ios - 带有 iOS 应用程序和 Objective-C 代码的 Parse.com

javascript - 如何在 Javascript 中显示数组的内容。数组存在于 ObjectiveC 代码中

swift - 删除 UITableViewCell 上不需要的左缩进