图片压缩处理, 可以根据各自的需求进行修改, 这里主要说明思路:
下面代码片段的需求: 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
网友评论