UIImageJPEGRepresentation увеличивает размер UIImage

У меня есть изображение (captureImage), которое берется камерой и изменяется. я использую UIImageJPEGRepresentation чтобы сжать изображение, после сжатия размер изображения увеличивается. Это нормальное поведение или я делаю сжатие / изменение размера неправильно?

if let image = captureImage {
    print(image.size) // (700, 700)
    let compressedImageData = UIImageJPEGRepresentation(image, 0.3)!
    let compressedImage = UIImage(data: compressedImageData)!
    print(compressedImage.size) // (3024, 3024)
}

1 ответ

Да, этот код для сжатия изображений

  let compressedImageData = UIImageJPEGRepresentation(image, 0.3)!

Одним из способов получения размера файла является сохранение в каталог документов. Например -

  let filePath = fileURL
        var fileSize : UInt64

        do {
            //return [FileAttributeKey : Any]
            let attr = try FileManager.default.attributesOfItem(atPath: filePath.path)
            fileSize = attr[FileAttributeKey.size] as! UInt64

            //if you convert to NSDictionary, you can get file size old way as well.
            let dict = attr as NSDictionary
            fileSize = dict.fileSize()
            print(fileSize)

        } catch {
            print("Error: \(error)")
        }
Другие вопросы по тегам