iOS-通过上下文对图片压缩图片

图片压缩处理, 可以根据各自的需求进行修改, 这里主要说明思路:

下面代码片段的需求: image 的宽度大于标准宽度, 就需要修改image 的宽度, 然后高度等比例压缩.

   // MARK: 图片压缩策略 等比例压缩
    // 如果宽度大于400(width) 就需要压缩处理
    func dealImageScale(image: UIImage, width: CGFloat) -> UIImage{
        // 如果image 的宽度小于等于400 直接返回
        if image.size.width <= width {
            return image
        }
        
        // 大于400 也就是大约width
        /*
         1200      400
         800        x
         */
        // 比例结果
        // 比例后的高度
        let h = width*image.size.height/image.size.width
        // 01 开启上下文
        UIGraphicsBeginImageContext(CGSize(width: width, height: h))
        // 02 吧image 渲染到上下文中
        image.draw(in: CGRect(x: 0, y: 0, width: width, height: h))
        // 03 从上下文中获取image
        let image = UIGraphicsGetImageFromCurrentImageContext()!
        // 04 关闭上下文
        UIGraphicsEndImageContext()
        // 05 返回image
        return image
    }

.End

你可能感兴趣的:(iOS-通过上下文对图片压缩图片)