/*
image 需要压缩的图片
newSize 压缩后的尺寸大小
*/
-(UIImage *)imageWithImage:(UIImage *)image CompressToSize:(CGSize)newSize;
- (UIImage *)imageWithImage:(UIImage *)image CompressToSize:(CGSize)newSize
{
UIImage *newImage = image;
CGFloat imgWigthF = newImage.size.width / newSize.width;//实际宽度和展示宽度相比较
CGFloat imgheigthF = newImage.size.height / newSize.height;//实际高度和展示高度相比较
CGFloat imgWigth = 0.0;
CGFloat imgheigth = 0.0;
//根据宽高比例的大小压缩图片
if (imgWigthF >= imgheigthF)
{//图片比较宽时,根据高度压缩图片
imgWigth = newImage.size.width / imgheigthF;
imgheigth = newImage.size.height / imgheigthF;
}else
{//图片比较高时,根据宽度压缩图片
imgWigth = newImage.size.width / imgWigthF;
imgheigth = newImage.size.height / imgWigthF;
}
newImage = [self imageWithImage:image scaledToSize:CGSizeMake(imgWigth, imgheigth)];
//把压缩好的图片根据尺寸大小剪切
CGImageRef cgRef = newImage.CGImage;
CGImageRef imageRef = CGImageCreateWithImageInRect(cgRef, CGRectMake(0,0, newSize.width, newSize.height));
UIImage *thumbScale = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
newImage = thumbScale;
//返回剪切后的图片
return newImage;
}
//对图片尺寸进行压缩--
-(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize
{
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}