iOS上传图片压缩
根据图片不同的大小,系数也随着改变
float ttr = 0.0;
if ([data length]/1024 < 500) {
ttr = 0.90;
}else if([data length]/1024 < 1024 && [data length]/1024 > 500){
ttr = 0.7;
} else if([data length]/1024 < 2048 && [data length]/1024 > 1024){
ttr = 0.6;
}else if([data length]/1024 < 3072 && [data length]/1024 > 2048){
ttr = 0.5;
}else{
ttr = 0.3;
}
//调用函数
NSData *imgdata = [self imageWithImage:theImage scaledToSize:CGSizeMake(theImage.size.width* ttr, theImage.size.height* ttr)];
//按照比例绘制image,像素点也会随之改变
- (NSData *)imageWithImage:(UIImage*)image
scaledToSize:(CGSize)newSize;
{
// 绘制一个新的image
UIGraphicsBeginImageContext(newSize);
// 以一个新的尺寸绘制image
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// 更改压缩系数后,通过调用UIImageJPEGRepresentation(UIImage* image, 0.5)读取数据时,返回的数据大小只有11KB多,大大压缩了图片的数据量 ,而且从视角角度看,图片的质量并没有明显的降低.
return UIImageJPEGRepresentation(newImage, 0.7);
}