在开发过程中,我们经常会遇到图片压缩功能,下面是我写的图片压缩的两个方法

首先是第一种,也是我比较推荐的


/// 调整图片尺寸和大小
/// @param sourceImage 原始图片
/// @param maxImageSize 新图片最大尺寸
/// @param maxSize 新图片最大存储大小(kb)
+ (UIImage *)reSizeImageData:(UIImage *)sourceImage maxImageSize:(CGFloat)maxImageSize maxSizeWithKB:(CGFloat) maxSize{if (maxSize <= 0.0) maxSize = 1024.0;if (maxImageSize <= 0.0) maxImageSize = 1024.0;//先调整分辨率CGSize newSize = CGSizeMake(sourceImage.size.width, sourceImage.size.height);CGFloat tempHeight = newSize.height / maxImageSize;CGFloat tempWidth = newSize.width / maxImageSize;if (tempWidth > 1.0 && tempWidth > tempHeight) {newSize = CGSizeMake(sourceImage.size.width / tempWidth, sourceImage.size.height / tempWidth);} else if (tempHeight > 1.0 && tempWidth < tempHeight){newSize = CGSizeMake(sourceImage.size.width / tempHeight, sourceImage.size.height / tempHeight);}UIGraphicsBeginImageContext(newSize);[sourceImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();//调整大小NSData *imageData = UIImageJPEGRepresentation(newImage,1.0);CGFloat sizeOriginKB = imageData.length / 1024.0;CGFloat resizeRate = 0.9;while (sizeOriginKB > maxSize && resizeRate > 0.1) {imageData = UIImageJPEGRepresentation(newImage,resizeRate);sizeOriginKB = imageData.length / 1024.0;resizeRate -= 0.1;}return [UIImage imageWithData: imageData];
}

这种图片内存大小和尺寸都可以限制

第二种就比较简单了,但是有局限性,只是进行压缩但是压缩到指定大小无法限定


/// 调整图片尺寸和大小
/// @param image 原始图片
/// @param width 宽度
/// @param height 高度
+ (UIImage*)resizeImage:(UIImage*)image toWidth:(NSInteger)width height:(NSInteger)height{CGSize size = CGSizeMake(width, height);if (NULL != UIGraphicsBeginImageContextWithOptions)UIGraphicsBeginImageContextWithOptions(size, NO, 0);elseUIGraphicsBeginImageContext(size);CGContextRef context = UIGraphicsGetCurrentContext();CGContextTranslateCTM(context, 0.0, height);CGContextScaleCTM(context, 1.0, -1.0);CGContextSetBlendMode(context, kCGBlendModeCopy);CGContextDrawImage(context, CGRectMake(0.0, 0.0, width, height), image.CGImage);// Retrieve the UIImage from the current contextUIImage *imageOut = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();return imageOut;
}

以上就是两种常见的图片压缩功能

iOS 调整图片尺寸和大小的两个方法相关推荐

  1. ios 改变图片尺寸_iOS基础(十八)——调整图片尺寸和大小

    调整图片尺寸和大小 /** * 调整图片尺寸和大小 * * @param sourceImage 原始图片 * @param maxImageSize 新图片最大尺寸 * @param maxSize ...

  2. 使用Python调整图片尺寸(大小)

    凯哥英语视频 使用Python调整图片尺寸(大小) python有一个图像处理库--PIL,可以处理图像文件.PIL提供了功能丰富的方法,比如格式转换.旋转.裁剪.改变尺寸.像素处理.图片合并等等等等 ...

  3. iOS 调整图片尺寸,告诉你的UI,别问我尺寸!我要最大的

    如果UI问你"这个图片你要多大尺寸的?",你该怎么回答呢? 为了不让图片因拉伸或压缩而变形或模糊,请精确告诉UI图片的比例,至于图片的分辨率,不必要要求太严,但是最低要求是要让最大 ...

  4. IOS 改变图片尺寸和大小方法

    一.改变size - (UIImage *)image:(UIImage*)image byScalingToSize:(CGSize)targetSize {UIImage *sourceImage ...

  5. 【matplotlib绘图】调整图片尺寸大小

    [matplotlib绘图]调整图片尺寸大小 核心代码如下: import matplotlib.pyplot as plt plt.rcParams['figure.figsize'] = (12. ...

  6. 不用ps,怎么批量调整图片尺寸大小?

    工作中要修改图片尺寸大小,我们首先想要的就是用photoshop软件来处理,但是用photoshop来处理也会有很多的不变,其一是如果图片数量多的话用PS一张一张处理起来会消耗很多的时间,很麻烦:其二 ...

  7. php中调整图片大小,php 调整图片尺寸的简单示例

    这篇文章主要为大家详细介绍了php 调整图片尺寸的简单示例,具有一定的参考价值,可以用来参考一下. 对php调整图片尺寸的代码感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! /** * ...

  8. 王者荣耀头像大小怎么调?调整图片尺寸大小工具分享

    手游王者荣耀换头像后,发现头像显示不全怎么办?很多小伙伴都发现了如果上传的图片尺寸过大会导致头像只显示一半,这时候需要修改图片大小来调整图片尺寸,怎么才能缩小图片尺寸呢?今天小编就推荐一款图片改大小( ...

  9. 怎么在线调整图片像素和大小?一分钟学会图片尺寸修改

    现在从社交媒体到网站设计,再到印刷品等多种用途,有时候您可能进行图片尺寸修改(https://www.yasuotu.com/size)以适应特定的需求,本文将介绍怎么在线调整图片大小,帮助您轻松地修 ...

最新文章

  1. Postman增删改查接口测试
  2. opencv-python图像处理之轮廓算法
  3. 非变动性算法源代码分析与使用示例( for_each、min_element 、find_if、search 等)...
  4. [转]URLRewrite隐藏.aspx后缀名的应用(转载+延伸)
  5. this到底指向哪里
  6. mysql: order by, group by ,having, select, where 执行 顺序
  7. 深度学习《Life-Long Learning》
  8. 《VMware vSphere 6.0虚拟化架构实战指南》——1.2 软件定义数据中心介绍
  9. 体胖还需勤跑步,人丑就该多读书!
  10. 24个足以改变事业的商业妙想
  11. 图像分割之基于阙值的分割方法
  12. 再一次获取你的WIFI密码(fluxion附视频)
  13. uboot的移植——移植uboot官方的uboot到x210开发板
  14. 三人表决电路——Verilog HDL语言
  15. 粗人之玩转Channel
  16. 【MATLAB航空航天工具箱】学习笔记--采用星历评估日行迹
  17. phpcms导入html模板,phpcms如何添加模板_CMS系统建站教程,phpcms
  18. Hevc变换系数扫描
  19. 听见,2022|徐长城:冰雪打蔫芳草地,唯松柏昂扬入青天
  20. 众多可爱壁纸素材一键即可获取

热门文章

  1. 直接让Windows注销的脚本
  2. Linux下Tomcat项目启动报错
  3. 如何在功能、特点、价格和性能方面选择PDF编辑器?
  4. centos 下载文件很慢_百度云盘上传文件和下载文件慢的解决办法
  5. 【设置版本号】React Native 通过配置文件package.json设置 Android安卓和iOS版本号
  6. 如何使用JavaScript实现前端导入和导出excel文件(H5编辑器实战复盘)
  7. 笔记本电脑亮度不能调节的一种解决方案
  8. 自制计算机(1):机械计算机原理
  9. FrameMaker 格式的本地化流程(续1)
  10. Python文件夹压缩