Измените размер UIImage до разрешения 512 x 512 и сохраните размер менее 100 КБ в Swift - PullRequest
0 голосов
/ 17 июня 2020

Как я могу изменить размер UIImage, чтобы он имел разрешение 512 x 512 и сохранял размер меньше 100 КБ. Мне удается добиться требуемого разрешения, но размер всегда превышает 100 КБ.

1 Ответ

1 голос
/ 17 июня 2020

Вы можете сжать изображение, используя метод jpegData(compressionQuality:), чтобы получить размер меньше определенного значения, используя это расширение:

extension UIImage {

    func jpegData(sizeLessThan sizeInKB: Double) -> Data? {
        var compressionQuality = CGFloat(1)
        var compressedData = jpegData(compressionQuality: compressionQuality)
        while (Double(compressedData?.count ?? 0) / 1024) > sizeInKB && compressionQuality >= 0 {
            compressionQuality -= 0.1
            compressedData = jpegData(compressionQuality: compressionQuality)
        }
        return compressedData
    }
}

Использование:

var image: UIImage?
let imageData = image?.jpegData(sizeLessThan: 100)
print(imageData)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...