高清图片上传内存问题解决
2015-12-19 11:14
260 查看
没有图片的APP在市面上比较少见,因此在程序开发中关于图片上传的内存问题不得不成为我们关注的焦点. 当遇到高清图片, 如果不对图片进行处理, 一则APP内存暴涨, 二则消耗用户流量过多, 降低用户体验.
图片处理有两种方式:
调整图片质量 (不常用)
// 参数1: 需要压缩的图片
// 参数2: 压缩的质量系数
// 返回值为NSData, 接下来把data转为UIImage即可
调整图片大小
// 可以把代码块拖到你的UIImage分类中, 涉及到图片缩放, 直接用要缩放的图片调用这个方法即可, so easy O(∩_∩)O !
图片处理有两种方式:
调整图片质量 (不常用)
public func UIImageJPEGRepresentation(image: UIImage, _ compressionQuality: CGFloat) -> NSData?
// 参数1: 需要压缩的图片
// 参数2: 压缩的质量系数
// 返回值为NSData, 接下来把data转为UIImage即可
调整图片大小
// 把图片等比例缩放到指定宽度 func scaleToWidth(width: CGFloat)-> UIImage{ if size.width < width{ return self } // 图片要缩放的高度 let height = width/size.width * size.height let rect = CGRect(x: 0, y: 0, width: width, height: height) // 1. 将图片绘制到指定rect UIGraphicsBeginImageContext(rect.size) // 2. 将图片绘制到上下文 drawInRect(rect) // 3. 从上下文中获取图片 let result = UIGraphicsGetImageFromCurrentImageContext() // 4. 关闭上下文 UIGraphicsEndImageContext() return result }
// 可以把代码块拖到你的UIImage分类中, 涉及到图片缩放, 直接用要缩放的图片调用这个方法即可, so easy O(∩_∩)O !
相关文章推荐
- hbase
- C++虚继承
- C++11: random #2
- Ubuntu 15.10安装elementary desktop
- Ubuntu 15.10安装elementary desktop
- [置顶] Android 购物选择颜色、尺码实现(二)
- 媒体服务器性能评估必须考虑的几个指标
- 打印 上一主题 下一主题 简单讲解UEFI及MBR,及UEFI系统安装引导修复
- 应用程序的并行配置不正确
- UIDatePicker 时间滚动表
- json数据反序列化成数据实体
- Ubuntu 15.10安装elementary desktop
- Auto Layout(NSLayoutAnchor)
- nodejs中操作mysql数据库示例
- 《android studio3》在多个activity之间传递参数
- php正则表达式教程
- 安装python的图形处理库: pillow
- 【Java EE 学习 76 上】【数据采集系统第八天】【角色授权】【用户授权】【权限的粗粒度控制】【权限的细粒度控制】
- [从头学数学] 第07节 11~20各数的认识
- Javaweb项目不用重启加载properties文件的方法(根据时间戳来判断)