图像未压缩到小于 307kb。 ios9
Image is not compressed to less than 307kb. ios9
我正在尝试上传大小为 80 到 100 kb 的图片,但不幸的是,下面的代码没有按预期工作,
imageData = UIImageJPEGRepresentation(image, compression);
我曾尝试将压缩率更改为 0.001,但 imageData
压缩后的文件不会小于 307 kb。
是否有另一种方法可以将 UIImage
更改为 NSData
到 80-100kb?
首先使用以下方法调整图片大小:
- (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));
我正在尝试上传大小为 80 到 100 kb 的图片,但不幸的是,下面的代码没有按预期工作,
imageData = UIImageJPEGRepresentation(image, compression);
我曾尝试将压缩率更改为 0.001,但 imageData
压缩后的文件不会小于 307 kb。
是否有另一种方法可以将 UIImage
更改为 NSData
到 80-100kb?
首先使用以下方法调整图片大小:
- (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));