如何将UIImage的大小压缩到一定的大小(以KB为单位)

时间:2014-06-28 00:49:34

标签: ios objective-c uiimage xcode5 nsdata

在我的应用中,我有一个用户选择/拍照,然后转到此方法(标准内容):

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

现在,我如何将图像缩小到某个文件大小(我希望它缩小到80-90 kb左右)。

1 个答案:

答案 0 :(得分:1)

有点粗糙:

UIImage *image = (UIImage *)info[UIImagePickerControllerEditedImage];
NSData *data;
for (CGFloat quality = 1.0; CGFloat >= 0; CGFloat -= 0.05)
{
    data = UIImageJPEGRepresentation(image,quality);
    if (data.length < 90000)
        break;
}

可能非常耗费CPU。可能有更好的方法可以更快地找到理想的质量。