图片压缩到制定大小

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jacob_ios/article/details/84580807

swift 4.2

将图片压缩到制定的大小,使用二分法进行循环,让计算值接近目标值

func compressQuality(_ image:UIImage, maxLength:NSInteger) -> Data {
        var compression:CGFloat = 1
        var data = image.jpegData(compressionQuality: compression)!
        if data.count < maxLength {
            return data
        }
        var max:CGFloat = 1
        var min:CGFloat = 0
        for _ in 0..<6 {
            compression = (max + min)/2
            data = image.jpegData(compressionQuality: compression)!
            if Double(data.count) < Double(maxLength)*0.9 {
                min = compression
            } else if data.count > maxLength {
                max = compression
            } else {
                break
            } 
        }
        return data
    }

猜你喜欢

转载自blog.csdn.net/jacob_ios/article/details/84580807