我想减少UIImagePickerController
的图像文件大小。我用这个方法
NSData * imageData = UIImageJPEGRepresentation(image,0.1);
但它将2.2 MB的图像文件大小减少到300 KB 我希望我的图像文件大小小于100 KB。
答案 0 :(得分:8)
Apple的文档声明:
生成的JPEG图像的质量,表示为0.0的值 到1.0。值0.0表示最大压缩(或最低压缩) 质量),而值1.0代表最小压缩(或最佳 质量)。
由于压缩质量是CGFloat,它支持超过十分位数的小数位。话虽如此,试试:
NSData *imageData = UIImageJPEGRepresentation(image, 0.032);
答案 1 :(得分:2)
以千克为单位缩小图像尺寸的最简单方法是减小像素大小!缩小它:
CGFloat scaleSize = 0.2f;
UIImage *smallImage = [UIImage imageWithCGImage:image.CGImage
scale:scaleSize
orientation:image.imageOrientation];
答案 2 :(得分:1)
首先使用以下方法调整图像大小:
- (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));