2017-02-22 5 views
0

Я хочу, чтобы уменьшить размер изображения, как этот сайт http://resizeimage.net мое изображение 1080 х 360 Размер 120KB после того как я использовал код ниже , но когда я использую веб-я 58Kb или если есть библиотека или алгоритм для сжатия файла изображения JPEGкак уменьшить размер изображения в быстрых КСН

func resizeImage(_ image: UIImage, newHeight: CGFloat) -> UIImage { 
    let scale = newHeight/image.size.height 
    let newWidth = image.size.width * scale 
    UIGraphicsBeginImageContext(CGSize(width: newWidth, height: newHeight)) 
    image.draw(in: CGRect(x: 0, y: 0, width: newWidth, height: newHeight)) 
    let newImage = UIGraphicsGetImageFromCurrentImageContext() 
    let imageData = UIImageJPEGRepresentation(newImage!, 0.5)! as Data 
    UIGraphicsEndImageContext() 
    return UIImage(data:imageData)! 
} 
+2

Используйте более высокое значение сжатия. – rmaddy

ответ

4

качество сжатия передаваемое в UIImageJPEGRepresentation определяет качество изображения Вашего изображения JPEG будет. У вас есть 0.5, попробовать что-то более низкий, как 0,1: let imageData = UIImageJPEGRepresentation(newImage!, 0.1)! as Data

От Документах Apple: compressionQuality The quality of the resulting JPEG image, expressed as a value from 0.0 to 1.0. The value 0.0 represents the maximum compression (or lowest quality) while the value 1.0 represents the least compression (or best quality).

+0

, но когда я ставлю 0.1, изображение будет выглядеть очень плохо. –

+0

Да, это компромисс, который вы получаете с сжатием изображения. Вы можете попробовать разные значения в пределах от 0,1 до 0,5, чтобы узнать, дает ли кто-нибудь из них достаточно хорошее качество и размер файла, который вы ищете. Может быть, 0,35 или 0,4 лучше. – rmooney

Смежные вопросы