我的应用程序的一个核心功能是用户可以使用自己的图像。但是图像大小应该限制在一定的大小。例如,不应该允许用户在imageView中加载全景图片。限制这一点的最好方法是什么?
我应该在imagePickerController之后做一个if语句吗?什么才是最好的最大尺寸?
发布于 2016-11-15 23:35:47
您可以检查image.size属性,然后根据该属性执行计算,以检查是否存在过大的大小或不支持的比率。
例如,全景图像往往有2,3甚至4:1的宽度与高度的比率,这将使他们很容易被检测。
发布于 2016-11-15 23:58:00
您还可以添加一个UIImage扩展,以便在用户选择图像后调整它的大小。
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!
}
}用法:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let pickedImage = info[UIImagePickerControllerEditedImage] as! UIImage
let resizedImage = pickedImage.resizeImage(CGSize(width: 100, height: 100))
}最佳大小可能取决于您的需求和为什么会发生崩溃。
https://stackoverflow.com/questions/40621577
复制相似问题