在iPhone中减less相机/照片库图像文件大小小于100 KB

我想减less从UIImagePickerController采取的图像文件大小。 我使用这种方法

NSData * imageData = UIImageJPEGRepresentation(image,0.1);

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

以千克为单位减less图像大小的最简单的方法是减小像素的大小! 缩小它:

 CGFloat scaleSize = 0.2f; UIImage *smallImage = [UIImage imageWithCGImage:image.CGImage scale:scaleSize orientation:image.imageOrientation]; 

苹果的文档陈述:

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

而且由于压缩质量是一个CGFloat,它支持超过十分之一的小数位。 这就是说,尝试:

 NSData *imageData = UIImageJPEGRepresentation(image, 0.032); 

首先用下面的方法调整图像大小:

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