Вот метод изменения размера, который я использую:
Код: Выделить всё
func resizedImage(minimumSize: CGFloat, maximumSize: CGFloat) -> UIImage? {
let originalWidth = size.width
let originalHeight = size.height
var scaleFactor: CGFloat
var newWidth: CGFloat
var newHeight: CGFloat
if originalWidth < minimumSize || originalHeight < minimumSize {
scaleFactor = max(minimumSize / originalWidth, minimumSize / originalHeight)
} else if originalWidth > maximumSize || originalHeight > maximumSize {
scaleFactor = min(maximumSize / originalWidth, maximumSize / originalHeight)
} else {
scaleFactor = 1.0
}
newWidth = originalWidth * scaleFactor
newHeight = originalHeight * scaleFactor
UIGraphicsBeginImageContextWithOptions(CGSize(width: newWidth, height: newHeight), false, 0)
draw(in: CGRect(x: 0, y: 0, width: newWidth, height: newHeight))
let resizedImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return resizedImage
}
Код: Выделить всё
if let resizedImage = resizedImage(minimumSize: 320, maximumSize: 1536) {
let imageData = resizedImage.jpegData(compressionQuality: 1.0)
// Proceed to upload imageData
}
Любые советы или идеи о том, как обеспечить сохранение измененного размера изображения размеры при преобразовании в данные для загрузки были бы очень признательны. Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/782 ... o-data-for