Xcode9学习笔记50 - 按一定比例缩放图片

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        let image = UIImage(named: "pic1")//从项目资源文件中读取一张图片
        //调用缩放图片的方法,将图片缩小至指定尺寸
        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 scaleFactor = (widthFactor<heightFactor) ? widthFactor : heightFactor//获取最小的那个比例
        
        let scaledWidth = width * scaleFactor//计算新图像的宽度
        let scaledHeight = height * scaleFactor//计算新图像的高度
        let targetSize = CGSize(width: scaledWidth, height: scaledHeight)//用新宽度和高度构标准尺寸对象
        
        UIGraphicsBeginImageContext(targetSize)//创建绘图上下文环境
        //将图像对象画入新尺寸里,原点为0,0
        image.draw(in: CGRect(x: 0, y: 0, width: scaledWidth, height: scaledHeight))
        //获取上下文里的内容,将内容写入到新的图像对象
        let newImage = UIGraphicsGetImageFromCurrentImageContext()
        
        return newImage!//返回生成的新的图像对象
    }





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值