为了防止我的应用程序滞后,我正在尝试压缩大于 1 MB 的图像(主要用于从 iphone 的普通相机拍摄的照片。
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
NSData *imageSize = UIImageJPEGRepresentation(image, 1);
NSLog(@"original size %u", [imageSize length]);
UIImage *image2 = [UIImage imageWithData:UIImageJPEGRepresentation(image, 0)];
NSData *newImageSize = UIImageJPEGRepresentation(image2, 1);
NSLog(@"new size %u", [newImageSize length]);
UIImage *image3 = [UIImage imageWithData:UIImageJPEGRepresentation(image2, 0)];
NSData *newImageSize2 = UIImageJPEGRepresentation(image3, 1);
NSLog(@"new size %u", [newImageSize2 length]);
picView = [[UIImageView alloc] initWithImage:image3] ;
但是,我得到的 NSLog 输出的内容类似于
original size 3649058
new size 1835251
new size 1834884
第一次和第二次压缩之间的差异几乎可以忽略不计。我的目标是使图像大小低于 1 MB。我是否忽略了某些事情/是否有替代方法可以实现这一目标?
编辑:如果可能的话,我想避免缩放图像的高度和宽度。