在iphone中将相机/照片库图像文件大小减少到100 KB以下

时间:2012-12-29 19:14:56

标签: ios iphone image uiimage image-size

我想减少UIImagePickerController的图像文件大小。我用这个方法

  

NSData * imageData = UIImageJPEGRepresentation(image,0.1);

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

3 个答案:

答案 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));