【问题标题】:Force square image from UIImagePickerController来自 UIImagePickerController 的强制方形图像
【发布时间】:2017-10-16 23:24:11
【问题描述】:


我想我有一个类似的问题,如 this 其他问题的标题所暗示的,但接受的答案根本不是我需要的。
我想“强制”用户使用方形图像。 Currently, when choosing a horizo​​ntally "longer" image (landscape image), one could theoretically make a selection with black bars top and bottom which results in a selected image that is NOT squared.
这是我的代码:

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(image: UIImage)) 将图像裁剪为正方形......
但我想要的是图像 SELECTION 始终是方形的。
我会附上截图。

我有什么:
我想要什么:

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

【问题讨论】:

标签: ios swift uiimage uiimagepickercontroller


【解决方案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)
    }
}

【讨论】:

  • 好的,所以这基本上可以完成我目前对 UIImage.imgToSquare(image: UIImage) 所做的事情,对吧?但我喜欢这种方法...... :)
  • 但是这种方法会限制用户只选择方形图像。
猜你喜欢
  • 2015-02-25
  • 1970-01-01
  • 1970-01-01
  • 2013-07-26
  • 1970-01-01
  • 2011-04-13
  • 1970-01-01
  • 2012-12-23
  • 2014-06-17
相关资源
最近更新 更多