Изменение размера UIImage работает, но возвращается к исходному размеру при преобразовании в данные для загрузкиIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Гость
 Изменение размера UIImage работает, но возвращается к исходному размеру при преобразовании в данные для загрузки

Сообщение Гость »

В моем приложении для iOS возникла необычная проблема, связанная с изменением размера и загрузкой изображений. Я реализовал метод изменения размера изображений, чтобы они соответствовали определенному диапазону размеров (минимальный размер: 320 пикселей, максимальный размер: 1536 пикселей) перед их загрузкой на сервер. Изменение размера, кажется, работает идеально, что подтверждается проверкой UIImage непосредственно после изменения размера. Однако в тот момент, когда я конвертирую изображение с измененным размером в данные (формат JPEG) при подготовке к загрузке, оно, похоже, возвращается к исходному размеру или не сохраняет измененные размеры.
Вот метод изменения размера, который я использую:

Код: Выделить всё

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
}
После изменения размера, когда я пытаюсь преобразовать измененный размер UIImage в такие данные:

Код: Выделить всё

if let resizedImage = resizedImage(minimumSize: 320, maximumSize: 1536) {
let imageData = resizedImage.jpegData(compressionQuality: 1.0)
// Proceed to upload imageData
}
Несмотря на изменение размера, imageData, похоже, отражает исходный размер изображения, а не измененный. Эта проблема возникает перед загрузкой, во время подготовки данных изображения для тела запроса. Цель состоит в том, чтобы гарантировать, что изображение, загружаемое на сервер, соответствует указанным ограничениям размера. Есть ли что-то, что я упускаю из виду в процессе изменения размера или преобразования данных, что может привести к тому, что изображение вернется к исходным размерам?
Любые советы или идеи о том, как обеспечить сохранение измененного размера изображения размеры при преобразовании в данные для загрузки были бы очень признательны. Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/782 ... o-data-for
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»