问题 强制UIImagePickerController裁剪方形图像


我们如何强制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);
}

5776
2017-08-26 07:57


起源

你不能强迫它,你必须在从委托回调中获取图像后调整它的大小,有很多方法可以向你展示如何通过切割更大的宽度或高度来调整图像的大小 - Loxx
不确定Objective-C与此有什么关系。请修复你的标签。 - Jasper


答案:


您正在正确执行此操作,直到您收到代理回调,在回调中您需要指定它是您要使用的已编辑图像。请注意,我在这里使用不同的委托方法。

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);
}

14
2017-08-26 08:42



谢谢Swinny89。这真的很有帮助。 - Chamath Jeevan
别客气 :) - Swinny89
这仍然让我选择一个非方形图像.... - unixb0y


对于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
           }
       })
}

0
2018-05-31 02:50