在实际开发中有可能会出现,用户上传的图片太大,清晰度太高,可能我们就需要考虑将其压缩或者缩小,不然的话会很消耗内存,从这个角度考虑的话,我们可以自己创建一个UIImage的分类,来将图片进行缩小。
import UIKit
extension UIImage
{
func scaleImage(width:CGFloat)->(UIImage)
{
//如果我们指定的宽度比所在的图片宽度大,就返回图片本身的width
if width > size.width
{
return self
}
//获取等比例的高度
let height = size.height * width/size.width
//获得rect
let rect = CGRect(x: 0, y: 0, width: width, height: height)
//开启图形上下文
UIGraphicsBeginImageContext(rect.size)
//绘图在指定的区域内拉伸绘制
self.draw(in: rect)
//取出当前存在的图片
let result = UIGraphicsGetImageFromCurrentImageContext()!
//关闭上下文
UIGraphicsEndImageContext()
return result
}
}