圖片壓縮到制定大小
阿新 • • 發佈:2018-11-28
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 }