强制UIImagePickerController裁剪出正方形图片

16

如何强制UIIImagePickerController裁剪正方形图片?

我已经搜遍了所有地方,但是没有找到一个可靠的解决方案。谢谢。

var imagePickerController: UIImagePickerController = UIImagePickerController();
imagePickerController.allowsEditing = true;
imagePickerController.delegate = self;
imagePickerController.sourceType = sourceType;



func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
    profilePictureSelected = true;

    profilePictureImageView.image = image;

    picker.dismissViewControllerAnimated(true, completion: nil);
}

不能强制调整图片大小,必须在从委托回调获取图像后进行调整。有很多方法可以将图像调整为正方形裁剪,通过切割宽度或高度中较大的一侧来实现。 - Larry Pickles
不确定 Objective-C 与此有何关系。请修正您的标签。 - Jasper
2个回答

18

在收到委托回调之前,您的操作是正确的。但是,在回调函数中,您需要指定要使用的编辑后的图像。请注意,我在此处使用了不同的委托方法。

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
    if let chosenImage = info[UIImagePickerControllerEditedImage] as? UIImage {

        profilePictureSelected = true;

        profilePictureImageView.image = chosenImage;
    }
    picker.dismissViewControllerAnimated(true, completion: nil);
}

1
谢谢Swinny89。这真的很有帮助。 - Chamath Jeevan

1

针对Swift 4

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
       viewController.dismiss(animated: true, completion: { () -> Void in
           if let image = info[UIImagePickerControllerEditedImage] as! UIImage {
               yourUIImageView.image = image
           }
       })
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接