iOS一行代码压缩图片大小

现在基本所有应用都与图片相关联,这就必然涉及到上传下载图片,而用户的流量又迟迟没有被解放,因此图片就不能太大,我们知道iPhone一张照片动辄几M,如果都传原图那流量就会爆炸,粗暴地缩小又会影响图片的分辨率。那有没有办法在保持一定分辨率的情况下压缩图片呢?有的,而且非常简单,一行代码搞定,是苹果自带的压缩函数:

  • UIImageJPEGRepresentation
  • UIImagePNGRepresentation

这两个函数都是iOS自带的图片压缩工具。一个是压成JPEG格式,一个是压成PNG格式。一般来说,JPEG格式压缩出的图片的大小都会小于PNG格式的。

UIImageJPEGRepresentation函数传入两个参数,要压缩的图片UIImage以及一个压缩系数(0.0~1.0)。
而UIImagePNGRepresentation只需要传入一个参数,即要压缩的图片UIImage。

两个函数都返回NSData格式的数据,要还原成图片的话直接用UIImage的imageWithData方法初始化就可以啦。

再谈谈压缩效果,上面说了,UIImageJPEGRepresentation压缩后的大小一般都会小于UIImagePNGRepresentation格式。就我的测试结果来看,UIImagePNGRepresentation压缩一张图片后是几百K,UIImageJPEGRepresentation压缩后只有一百多K,如果将压缩系数写为0.5,更是能压缩到几十K的大小,而且图片的清晰度肉眼基本看不太出来,不得不说简直是神器!所以,如果没有别的要求,直接用UIImageJPEGRepresentation疯狂地压缩吧,根据效果来调整系数达到最好的结果就可以了~


版权所有:http://blog.csdn.net/cloudox_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值