最近碰到一个比较愚蠢的问题,项目中做的拍照或者从相册选择图片上传时,没有经过处理,直接把原图上传了,导致在列表中看的时候,明明是小图片流量却要爆炸了,想想iphone拍出照片大小可都是以M为单位的。所以赶紧做了下压缩处理再上传。为了方便根据不同压缩需求调用,这里采用调用可修改参数的方法的做法,更加灵活一点。调用的方法如下:
//图片伸缩到指定大小
- (UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize forImage:(UIImage *)originImage
{
UIImage *sourceImage = originImage;// 原图
UIImage *newImage = nil;// 新图
// 原图尺寸
CGSize imageSize = sourceImage.size;
CGFloat width = imageSize.width;
CGFloat height = imageSize.height;
CGFloat targetWidth = targetSize.width;// 目标宽度
CGFloat targetHeight = targetSize.height;// 目标高度
// 伸缩参数初始化
CGFloat scaleFactor = 0.0;
CGFloat scaledWidth = targetWidth;
CGFloat scaledHeight = targetHeight;
CGPoint thumbnailPoint = CGPointMake(0.0,0.0);
if (CGSizeEqualToSize(imageSize, targetSize) == NO)
{// 如果原尺寸与目标尺寸