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)
}

person Rashid    schedule 11.04.2017    source источник
comment
Пожалуйста, обратитесь к следующей ссылке: stackoverflow.com/questions/29137488/ Может быть вам полезно.   -  person Aashish1aug    schedule 11.04.2017
comment
Вы получили какое-либо решение для этого?   -  person OverMind    schedule 29.10.2019


Ответы (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)")
        }
person Jack    schedule 11.04.2017