图片压缩

压缩图片方式一:

相对比较复杂,通过图形上下文实现

    /**
     压缩图片
     
     - parameter width: 压缩后希望得到的宽度
     - parameter image: 需要压缩的图片
     
     - returns: 压缩后的图片
     */

    func scaleImageOfwidth(width: CGFloat, image: UIImage) -> UIImage {
        
        if width > image.size.width {
            // 如果传入的图片宽度小于希望压缩后的宽度,原图返回,不再进行压缩
            return image
        }
        // 等比例计算压缩图片后的高度
        let height = width / image.size.width * image.size.height
        
        /*
            参数1: 大小
            参数2: 是否不透明
            参数3: 缩放比  (0.0使用当前设备的缩放比)
         */
        UIGraphicsBeginImageContextWithOptions(CGSizeMake(width, height), false, 0.0)
        
        // 将image渲染到上下文中
        image.drawInRect(CGRect(x: 0, y: 0, width: width, height: height))
        
        // 从图形上下文中获取图片
        let scaledDownImg = UIGraphicsGetImageFromCurrentImageContext()
        
        // 关闭图形上下文
        UIGraphicsEndImageContext()
        
        return scaledDownImg
        
    }
压缩图片方式二:

相对简单,只需传入需要压缩的图片和压缩比例
得到的二进制数据就是压缩后的数据

func UIImageJPEGRepresentation(image: UIImage, _ compressionQuality: CGFloat) -> NSData? 
       参数1: 传入需要压缩的图片
       参数2: 压缩系数 0 ~ 1
       返回值类型: NSData

你可能感兴趣的:(图片压缩)