图片压缩
压缩图片方式一:
【图片压缩】相对比较复杂,通过图形上下文实现
/**
压缩图片- 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