首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用用于UIImageView的大型UIImageView

禁用用于UIImageView的大型UIImageView
EN

Stack Overflow用户
提问于 2016-11-15 23:31:32
回答 2查看 187关注 0票数 0

我的应用程序的一个核心功能是用户可以使用自己的图像。但是图像大小应该限制在一定的大小。例如,不应该允许用户在imageView中加载全景图片。限制这一点的最好方法是什么?

我应该在imagePickerController之后做一个if语句吗?什么才是最好的最大尺寸?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-15 23:35:47

您可以检查image.size属性,然后根据该属性执行计算,以检查是否存在过大的大小或不支持的比率。

例如,全景图像往往有2,3甚至4:1的宽度与高度的比率,这将使他们很容易被检测。

票数 1
EN

Stack Overflow用户

发布于 2016-11-15 23:58:00

您还可以添加一个UIImage扩展,以便在用户选择图像后调整它的大小。

代码语言:javascript
复制
extension UIImage {

    func resizeImage(_ targetSize: CGSize) -> UIImage {

        // This is the rect that we've calculated out and this is what is actually used below
        let rect = CGRect(x: 0, y: 0, width: targetSize.width, height: targetSize.height)

        // Actually do the resizing to the rect using the ImageContext stuff
        UIGraphicsBeginImageContextWithOptions(targetSize, false, 1.0)
        self.draw(in: rect)
        let newImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        return newImage!
    }
}

用法:

代码语言:javascript
复制
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {

    let pickedImage = info[UIImagePickerControllerEditedImage] as! UIImage
    let resizedImage = pickedImage.resizeImage(CGSize(width: 100, height: 100))
}

最佳大小可能取决于您的需求和为什么会发生崩溃。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40621577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档