Вы также можете добавить расширение 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))
}
Оптимальный размер вероятно, будет зависеть от ваших требований и почему у вас возникли сбои.
Вы можете легко установить изображение Image contentMode в aspectSizeToFit или Fill. Таким образом, вам не нужно беспокоиться о ограничениях размера изображения? – Joe
Нет, мне нужно немного поработать с интенсивностью памяти, и если изображение будет большим, оно сработает с сигналом 9. – rotr
Почему бы вам просто не попробовать образец изображения до фактического размера изображения, прежде чем назначать его просмотр изображений; то у вас не будет дополнительных пикселей в памяти. http://nshipster.com/image-resizing/ –