美文网首页
Swift中修改UIImage图片的尺寸

Swift中修改UIImage图片的尺寸

作者: Bondi_blue | 来源:发表于2020-06-20 20:48 被阅读0次

在iOS开发中,有时候我们需要对原始的UIImage的尺寸进行处理,比如进行缩放或者修改大小等
但UIImage并没有可以直接使用的方法,因此我们可以对UIImage扩展相关方法来进行处理。

1.扩展UIImage

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

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

2.使用方法

使用时调用上面👆添加的方法即可。

import UIKit
 
class ViewController: UIViewController {
     
    let image = UIImage(named:"image.jpg")
 
    @IBOutlet weak var imageView: UIImageView!
     
    override func viewDidLoad() {
        super.viewDidLoad()
    }
 
    //显示原始图片
    @IBAction func btn1Click(sender: AnyObject) {
        imageView.image = image
    }
     
    //将图片修改成指定尺寸(20*20)
    @IBAction func btn2Click(sender: AnyObject) {
        let reSize = CGSize(width: 20, height: 20)
        imageView.image = image?.reSizeImage(reSize)
    }
     
    //将图片缩小成原来的一半
    @IBAction func btn3Click(sender: AnyObject) {
        imageView.image = image?.scaleImage(0.5)
    }
     
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

相关文章

网友评论

      本文标题:Swift中修改UIImage图片的尺寸

      本文链接:https://www.haomeiwen.com/subject/uhdgxktx.html