分享一个根据自己想要的尺寸来重绘图片的方法:
import Foundation class UIImageHelper { static func createImage(imgPath: String, CGFloat, height: CGFloat) -> UIImage { var image: UIImage? = nil if NSFileManager.defaultManager().fileExistsAtPath(imgPath) { let data = NSData.init(contentsOfFile: imgPath) image = UIImage.init(data: data!) let size = CGSizeMake(width, height) // UIGraphicsBeginImageContext(size) // 开始绘制图片尺寸 UIGraphicsBeginImageContextWithOptions(size, false, UIScreen.mainScreen().scale) image?.drawInRect(CGRectMake(0, 0, size.width, size.height))// 设置iamge想要设置成的宽和高 let newImage = UIGraphicsGetImageFromCurrentImageContext()// 绘制完会返回一个新的图片newImage UIGraphicsEndImageContext() // 结束 return newImage! } return image! } }
刚开始我遇到一个问题,就是我用这个方法的时候,用的是UIGraphicsBeginImageContext(size),但是绘制出来的图片是模糊的,不清晰,我设置的图片是24*24,图片的实际尺寸是48*48,按说应该不会变模糊,后来用了拒绝图片锯齿,还是模糊的,最后发现把
UIGraphicsBeginImageContext(size)
换成
UIGraphicsBeginImageContextWithOptions(size, false, UIScreen.mainScreen().scale)
问题就解决了。