我想减小从UIImagePickerController
获得的图像文件大小。我使用以下方法:
NSData *imageData = UIImageJPEGRepresentation(image, 0.1);
但这只能将2.2 MB的图像文件大小减少到300 KB,我希望我的图像文件大小小于100 KB。
我想减小从UIImagePickerController
获得的图像文件大小。我使用以下方法:
NSData *imageData = UIImageJPEGRepresentation(image, 0.1);
但这只能将2.2 MB的图像文件大小减少到300 KB,我希望我的图像文件大小小于100 KB。
苹果公司的文档中写道:
JPEG 图像的质量,表示为 0.0 到 1.0 的值。值 0.0 表示最大压缩(或最低质量),而值 1.0 表示最小压缩(或最佳质量)。
由于压缩质量是 CGFloat 类型,支持小数点后的十分位数。因此,请尝试:
NSData *imageData = UIImageJPEGRepresentation(image, 0.032);
减小图片大小最简单的方法就是减小像素大小!将其缩小:
CGFloat scaleSize = 0.2f;
UIImage *smallImage = [UIImage imageWithCGImage:image.CGImage
scale:scaleSize
orientation:image.imageOrientation];
- (UIImage *)resizeImage:(UIImage*)image newSize:(CGSize)newSize {
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
通过以下方式调用:
UIImage *newImage=yourImage;
CGSize size=CGSizeMake(newImage.size.width/8,newImage.size.height/8);
newImage=[self resizeImage:newImage newSize:size];
最终按要求压缩了您的图像:
NSData *imageData = UIImageJPEGRepresentation(newImage, 0.5);
NSLog(@"Size of image = %lu KB",(imageData.length/1024));