iOS设置图片最大尺寸
2016-04-18 20:55
375 查看
经常遇到类似上传头像、社交分享等操作的时候,需要对图片进行裁切,
一般需要限制一个最大值,来限制图片既要维持宽高比例,又要让宽高都小于这个最大值
下面这个方法即可满足需求,当宽高都小于最大值的时候,不对图片进行压缩大小。当图片是竖排版(高>宽)的时候,把图片的高压缩到设置的最大值,同时宽按比例压缩到对应大小。同理,当图片是横版(高<宽),把宽设置成最大值,高按比例缩小。
压缩图片的原理,是利用Core Graphics来重绘图片
代码如下:
希望能对大家有所帮助,欢迎互相交流,共同学习进步!
一般需要限制一个最大值,来限制图片既要维持宽高比例,又要让宽高都小于这个最大值
下面这个方法即可满足需求,当宽高都小于最大值的时候,不对图片进行压缩大小。当图片是竖排版(高>宽)的时候,把图片的高压缩到设置的最大值,同时宽按比例压缩到对应大小。同理,当图片是横版(高<宽),把宽设置成最大值,高按比例缩小。
压缩图片的原理,是利用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; }
希望能对大家有所帮助,欢迎互相交流,共同学习进步!
相关文章推荐
- 按右键另存图片只能存BMP
- photoshop去除图片上的水印
- upload上传单张图片
- 图片引发的溢出危机(图)
- C#实现把彩色图片灰度化代码分享
- C#将图片和字节流互相转换并显示到页面上
- C#监控文件夹并自动给图片文件打水印的方法
- 纯CSS实现的当鼠标移上图片添加阴影效果代码
- 如何使用C#从word文档中提取图片
- C#实现打开画图的同时载入图片、最大化显示画图窗体的方法
- C#图片添加水印的实现代码
- 随鼠标移动的图片或文字特效代码
- CSS 图片横向排列实现代码
- C#实现将Email地址转成图片显示的方法
- C#实现图片加相框的方法
- 超级经典一套鼠标控制左右滚动图片带自动翻滚
- 用css实现图片垂直居中的使用技巧
- C++实现读取图片长度和宽度
- Android实现图片异步加载并缓存到本地
- PHP根据图片色界在不同位置加水印的方法