您的位置:首页 > 移动开发 > IOS开发

iOS设置图片最大尺寸

2016-04-18 20:55 375 查看
经常遇到类似上传头像、社交分享等操作的时候,需要对图片进行裁切,

一般需要限制一个最大值,来限制图片既要维持宽高比例,又要让宽高都小于这个最大值

下面这个方法即可满足需求,当宽高都小于最大值的时候,不对图片进行压缩大小。当图片是竖排版(高>宽)的时候,把图片的高压缩到设置的最大值,同时宽按比例压缩到对应大小。同理,当图片是横版(高<宽),把宽设置成最大值,高按比例缩小。

压缩图片的原理,是利用Core Graphics来重绘图片

代码如下:
/*
*
*  压缩图片至目标尺寸
*
*  @param sourceImage 源图片
*  @param maxValue 图片长宽最大值
*
*  @return 返回按照源图片的宽、高比例压缩至目标宽、高的UIImage图片
*/
- (UIImage *)resizeImage:(UIImage *)sourceImage toMaxWidthAndHeight:(CGFloat)maxValue {
CGSize imageSize = sourceImage.size;

CGFloat width = imageSize.width;
CGFloat height = imageSize.height;

if (width > height && width > maxValue) {
height = height * (maxValue / width);
width = maxValue;
}else if (height > width && height > maxValue) {
width = width * (maxValue / height);
height = maxValue;

4000
}else {
return sourceImage;
}

UIGraphicsBeginImageContext(CGSizeMake(width, height));
[sourceImage drawInRect:CGRectMake(0, 0, width, height)];

UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return newImage;
}


希望能对大家有所帮助,欢迎互相交流,共同学习进步!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios开发 图片