swift笔记--图片的缩放

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.

}

}

猜你喜欢

转载自blog.csdn.net/weixin_41735943/article/details/81163922