import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
// 通过图形的上下文,实现图形的缩放
// 读取一张图片
let image = UIImage(named: "img1")
// 调用图像缩小的方法
let scaledImage = scaleImage(image: image!, newSize: CGSize(width: 180, height: 180))
// 创建一个一个图像视图,并加载缩小后的图片
let imageView = UIImageView(image: scaledImage)
// 设置图像视图的中心点
imageView.center = CGPoint(x: 160, y: 160)
self.view.addSubview(imageView)
}
//创建一个方法,传递一个图像参数和缩放比例参数,实现缩放功能
func scaleImage(image:UIImage , newSize:CGSize)->UIImage{
// 获得原图像的尺寸属性
let imageSize = image.size
// 获得原图像的宽度数值
let width = imageSize.width
// 获得原图像的高度数值
let height = imageSize.height
// 计算图像新尺寸与旧尺寸的宽高比例
let widthFactor = newSize.width/width
let heightFactor = newSize.height/height
// 获取最小的比例
let scalerFactor = (widthFactor < heightFactor) ? widthFactor : heightFactor
// 计算图像新的高度和宽度,并构成标准的CGSize对象
let scaledWidth = width * scalerFactor
let scaledHeight = height * scalerFactor
let targetSize = CGSize(width: scaledWidth, height: scaledHeight)
// 创建绘图上下文环境,
UIGraphicsBeginImageContext(targetSize)
image.draw(in: CGRect(x: 0, y: 0, width: scaledWidth, height: scaledHeight))
// 获取上下文里的内容,将视图写入到新的图像对象
let newImage = UIGraphicsGetImageFromCurrentImageContext()
return newImage!
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}