7

我想减小从UIImagePickerController. 我用这个方法

NSData *imageData = UIImageJPEGRepresentation(image, 0.1);

但它将 2.2 MB 图像文件大小减少到 300 KB 我希望我的图像文件大小小于 100 KB。

4

3 回答 3

8

苹果的文档状态:

生成的 JPEG 图像的质量,表示为 0.0 到 1.0 之间的值。值 0.0 表示最大压缩(或最低质量),而值 1.0 表示最小压缩(或最佳质量)。

并且由于压缩质量是 CGFloat,它支持十位以上的小数位。话虽如此,请尝试:

NSData *imageData = UIImageJPEGRepresentation(image, 0.032);
于 2012-12-29T19:21:41.080 回答
2

以公斤为单位减小图像大小的最简单方法是以像素为单位减小大小!将其缩小:

CGFloat scaleSize = 0.2f;
UIImage *smallImage = [UIImage imageWithCGImage:image.CGImage
                      scale:scaleSize
                      orientation:image.imageOrientation];
于 2012-12-30T00:25:49.467 回答
1

First resize the image with below method:

- (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;
}

call this by:

UIImage *newImage=yourImage;
CGSize size=CGSizeMake(newImage.size.width/8,newImage.size.height/8);
newImage=[self resizeImage:newImage newSize:size];

And finally compressed your image as required:

NSData *imageData = UIImageJPEGRepresentation(newImage, 0.5);
NSLog(@"Size of image = %lu KB",(imageData.length/1024));
于 2015-10-15T06:20:19.277 回答