How to get the edited image from UIImagePickerController in Swift?

前端 未结 5 607
北荒
北荒 2021-02-09 03:11

I have seen and read the documents of Apple where they have clearly mentioned about the key UIImagePickerControllerEditedImage. But when I am running my following code, I am no

相关标签:
5条回答
  • 2021-02-09 03:30

    I found the cause of the issue! Its because of the property "allowsEditing" which was set to false! I have changed that to true and now it is working fine.

    0 讨论(0)
  • 2021-02-09 03:31

    You can do it like this.

    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
    
        let image = info[UIImagePickerControllerEditedImage] as UIImage
    }
    
    0 讨论(0)
  • 2021-02-09 03:33

    SWIFT 3.0:

    Add UINavigationControllerDelegate and UIImagePickerControllerDelegate

    var imagePicker = UIImagePickerController()
    
    @IBAction func btnSelectPhotoOnClick(_ sender: UIButton)
    {
        let alert = UIAlertController(title: "Choose Image", message: nil, preferredStyle: .actionSheet)
        alert.addAction(UIAlertAction(title: "Camera", style: .default, handler: { _ in
            self.openCamera()
        }))
    
        alert.addAction(UIAlertAction(title: "Gallery", style: .default, handler: { _ in
            self.openGallary()
        }))
    
        alert.addAction(UIAlertAction.init(title: "Cancel", style: .cancel, handler: nil))
    
        imagePicker.delegate = self
        self.present(alert, animated: true, completion: nil)
    }
    func openCamera()
    {
        if(UIImagePickerController .isSourceTypeAvailable(UIImagePickerControllerSourceType.camera))
        {
            imagePicker.sourceType = UIImagePickerControllerSourceType.camera
            imagePicker.allowsEditing = true
            self.present(imagePicker, animated: true, completion: nil)
        }
        else
        {
            let alert  = UIAlertController(title: "Warning", message: "You don't have camera", preferredStyle: .alert)
            alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
            self.present(alert, animated: true, completion: nil)
        }
    }
    func openGallary()
    {
        imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary
        imagePicker.allowsEditing = true
        self.present(imagePicker, animated: true, completion: nil)
    }
    
    
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        picker.dismiss(animated: true, completion: nil)
    //You will get cropped image here..
        if let image = info[UIImagePickerControllerEditedImage] as? UIImage
        {
            self.imageView.image = image
        }   
    }
    
    0 讨论(0)
  • 2021-02-09 03:38

    Make sure you allowed to editing image in UIImagePickerController.

    You can allow UIImagePickerController to edit the UIImage by making this

    picker.allowsEditing = true

    0 讨论(0)
  • 2021-02-09 03:44

    Swift 4.2

    if let editedImage = info[UIImagePickerController.InfoKey.editedImage] as? UIImage {
            // Use editedImage Here
        }
    
    0 讨论(0)
提交回复
热议问题