高清图片上传内存问题解决

没有图片的APP在市面上比较少见,因此在程序开发中关于图片上传的内存问题不得不成为我们关注的焦点. 当遇到高清图片, 如果不对图片进行处理, 一则APP内存暴涨, 二则消耗用户流量过多, 降低用户体验.

图片处理有两种方式:

  • 调整图片质量 (不常用)
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 !

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值