从UIImagePickerController强制方形图像

时间:2017-10-16 23:24:11

标签: ios swift uiimage uiimagepickercontroller


我想我有一个类似this其他问题的标题所暗示的问题,但接受的答案根本不是我所需要的。
我想“强迫”用户使用方形图像。目前,当选择水平“更长”的图像(风景图像)时,理论上可以在顶部和底部用黑条进行选择,这导致所选择的图像不是平方的。
这是我的代码:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    var selected: UIImage?

    if let img = info[UIImagePickerControllerEditedImage] as? UIImage {
        selected = img
        selected = UIImage.imgToSquare(image: selected)
        doSomethingWithImage(selected!)
    }

    picker.dismiss(animated: true, completion: nil)
}


UIImage.imgToSquare(image:UIImage)是我所拥有的扩展并用作临时后备,但如果“最大捏缩/缩小”给出方形图像,它会更加优雅。


对于将此标记为重复的人..以何种方式重复?我无法在整个互联网上找到解决方案,你链接的内容与UIImagePickerController无关.... 我已经说过我可以使用我的扩展(UIImage.imgToSquare(图片:UIImage))将图像裁剪成正方形.... 但我想要的是,图像SELECTION始终是方形的 我会附上截图。

我有什么:What I have
我想要的是:enter image description here

(第二个 - 我想要的 - 仍然可以水平滚动)

1 个答案:

答案 0 :(得分:-1)

我认为这对你有帮助..

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
    var myimage:UIImage!

    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
        myImageView.contentMode = .ScaleAspectFit
        myImageView.image = pickedImage
        myimage = pickedImage
    }

    // So the user can pick only Square Image not others
    if myimage.size.height == myimage.size.width
    {
    dismissViewControllerAnimated(true, completion: nil)
    }
}