图片质量压缩到某一范围内,如果后面用到多,可以抽成分类或者工具类,这里压缩递减比二分的运行时间长,二分可以限制下限。
- (NSData *)compressImage:(UIImage *)image toMaxFileSize:(NSUInteger)maxFileSize
{
CGFloat min = 0;
CGFloat max = 1;
CGFloat mid = 0.5;
NSData *imageData = UIImageJPEGRepresentation(image, mid);
while (min < max) {
mid = (max + min) / 2;
imageData = UIImageJPEGRepresentation(image, mid);
if (max < 0.05 || min > 0.95) { //避免造成死循环。
break;
}
if ([imageData length] > maxFileSize) {
max = mid;
} else {
if ([imageData length] >= 120 * 1024) {
break;
} else {
min = mid;
}
}
}
return imageData;
}