iOS中图片压缩的常见方法
2016-07-06 13:08
169 查看
开发中经常会碰到从手机相册中选择图片的需求,选择图片这个过程是一个消耗性能的过程,取决于手机图片的大小,如果手机像素非常高,图片的尺寸非常大,这个时候就会变得很消耗性能,比如一张图片5兆,这个时候选择后加载的时候就会有些卡顿,内存开始大幅升高,仔细想想也没有这种必要去加载这么大的图片,所以总结了两种处理方法,提供参考
1:对图片进行压缩,iOS的API中提供了函数进行压缩,代码如下:
1:对图片进行压缩,iOS的API中提供了函数进行压缩,代码如下:
[code]NSData *imageData = UIImageJPEGRepresentation(image, 0.5); 这个返回的是二进制的data值,可以通过打印知道大小确实减少了好多,通过此方法确实能优化性能,需要注意的是这个0.5,并不是说压缩到之前图片的二分之一 ,应该是个系数之类的数值,这样的话图片压缩之后性能会好很多,但是不建议这个,因为解压缩的时候很耗费性能建议使用第二种方法 2:根据image从新绘制一张新的图片出来,第一种的方法多多少少会有些失真,第二种方法是根据图片从新绘制一张出来,不会失真,只是改变图片的大小,比如之前是5000 * 5000的分辨率, 这个时候你压缩后可能就只有500 * 500 ,不会失真,只会改变大小,建议使用,方法如下:[/code]
[code]- (UIimage *)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize; { UIGraphicsBeginImageContext(newSize); [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage;[/code]
[code][/code]
}如上两种方法,即可简单实现压缩图片的功能,更深入的话就要图像编码之类的知识了估计,记录下以备忘
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- MySQL 优化
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- php7 扩展类的写法[2]
- php7 类的方法传参[3]
- Google排名优化的几个影响因素
- 按右键另存图片只能存BMP
- photoshop去除图片上的水印
- 一个简单的asp数据库操作类
- DB2优化(简易版)
- Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架
- C#中尾递归的使用、优化及编译器优化
- Ruby面向对象编程中类与方法的基础学习
- 对优化Ruby on Rails性能的一些办法的探究
- C#实现用于操作wav声音文件的类实例