在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()
}
}
网友评论