前言:上一章节我们说到了上传图片,在上传图片中可能图片过大,这个时候我们就需要对图片进行处理。
首先我们需要了解下 压和缩的概念
1、“压” 是指文件体积变小,但是像素数不变,长宽尺寸不变,那么质量可能下降。
2、“缩” 是指文件的尺寸变小,也就是像素数减少,而长宽尺寸变小,文件体积同样会减小。
下面这个方法根据相应的宽度来进行图片压缩,即缩
+ (UIImage *)imageCompressForWidth:(UIImage *)sourceImage targetWidth:(CGFloat)defineWidth
{
CGSize imageSize = sourceImage.size;
CGFloat width = imageSize.width;
CGFloat height = imageSize.height;
CGFloat targetWidth = defineWidth;
CGFloat targetHeight = (targetWidth / width) * height;
UIGraphicsBeginImageContext(CGSizeMake(targetWidth, targetHeight));
[sourceImage drawInRect:CGRectMake(0,0,targetWidth, targetHeight)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
下面这个方法是根据压缩系数来进行图片压缩,即压
//根据图片的格式选择相应的方法
NSData *imageData;
if ([fileName hasSuffix:@".png"]) {
imageData = UIImagePNGRepresentation(image);
}else {
imageData = UIImageJPEGRepresentation(image, 0.28);
}