禁用UIImageView的大UIImages

时间:2016-11-15 23:31:32

标签: ios swift uiimageview uiimage

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

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

2 个答案:

答案 0 :(得分:1)

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

例如,全景图像往往具有2,3或甚至4:1的宽高比,这使得它们易于检测。

答案 1 :(得分:1)

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

False

用法:

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!
    }
}

最佳尺寸可能取决于您的要求以及您遇到崩溃的原因。