来自 UIImagePickerController 的强制方形图像

Posted

技术标签:

【中文标题】来自 UIImagePickerController 的强制方形图像【英文标题】:Force square image from 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 始终是方形的。 我会附上截图。 我有什么: 我想要什么: (第二个 - 我想要的 - 仍然可以水平滚动)

【问题讨论】:

您为什么不简单地删除允许编辑的选项并在您的 imageView 上使用内容模式 scaleAspectFill。或者实现自己的裁剪 因为我希望我的用户选择他的图像中不一定在中心的正方形部分。也许我可以在 UIImagePicker 上设置一些只允许正方形选择的东西(顶部和底部没有黑色部分)? ***.com/q/20056870/2303865 ***.com/questions/1824287/… 这可能会有所帮助***.com/q/13640754/2303865 【参考方案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) 所做的事情,对吧?但我喜欢这种方法...... :) 但是这种方法会限制用户只选择方形图像。

以上是关于来自 UIImagePickerController 的强制方形图像的主要内容,如果未能解决你的问题,请参考以下文章

ViewController 生命周期 UINavigationController

如何从 webview 使用 UIImagePickerController

iPhone OS 3.0 中的 UIImagePickerController

iOS开发——打开手机相册,获取图片

如何使用 iphone 中的核心数据将图像存储到 sqlite? [复制]

检查网络响应是来自服务器还是来自 Chrome 缓存