当前位置: > > > Swift - 改变UIImage图片的大小尺寸,或按比例缩放

Swift - 改变UIImage图片的大小尺寸,或按比例缩放

在开发中,我们有时候需要对原始的 UIImage 进行处理,比如修改大小或者进行缩放操作。
         

1,扩展UIImage
这里先对 UIImage 进行扩展,增加两个方法,分别用于尺寸的重置和大小缩放。
import UIKit

extension UIImage {
    /**
     *  重设图片大小
     */
    func reSizeImage(reSize:CGSize)->UIImage {
        //UIGraphicsBeginImageContext(reSize);
        UIGraphicsBeginImageContextWithOptions(reSize,false,UIScreen.mainScreen().scale);
        self.drawInRect(CGRectMake(0, 0, reSize.width, reSize.height));
        let reSizeImage:UIImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return reSizeImage;
    }
    
    /**
     *  等比率缩放
     */
    func scaleImage(scaleSize:CGFloat)->UIImage {
        let reSize = CGSizeMake(self.size.width * scaleSize, self.size.height * scaleSize)
        return reSizeImage(reSize)
    }
}

2,使用样例
import UIKit

class ViewController: UIViewController {
    
    let image = UIImage(named:"img.jpg")

    @IBOutlet weak var imageView: UIImageView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    //显示原始图片
    @IBAction func btn1Click(sender: AnyObject) {
        imageView.image = image
    }
    
    //将图片修改成指定尺寸(160*100)
    @IBAction func btn2Click(sender: AnyObject) {
        let reSize = CGSize(width: 240, height: 150)
        imageView.image = image?.reSizeImage(reSize)
    }
    
    //将图片缩小成原来的一半
    @IBAction func btn3Click(sender: AnyObject) {
        imageView.image = image?.scaleImage(0.5)
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}
源码下载hangge_1344.zip

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作。

打赏支持
评论1
  • 1楼
    2016-09-18 22:05
    流氓饺子

    楼主辛苦了,一直都在阅读您的文章,给了我很大帮助

    站长回复

    很高兴我写的文章能帮助到你。我会持续更新下去的,欢迎常来。