swift4--图片的缩放

直接上代码了

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: "image1")
        //        调用图像缩小的方法
        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.
    }
    
    
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值