UIImage
图像操作
resize
UIGraphicsBeginImageContext(CGSize(width: newWidth, height: newHeight))
croppedImage.drawInRect(CGRect(x: 0, y: 0, width: newWidth, height: newHeight))
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
crop
func crop(rect: CGRect) -> UIImage {
var rectTransform: CGAffineTransform
switch imageOrientation {
case .Left:
rectTransform = CGAffineTransformTranslate(CGAffineTransformMakeRotation(CGFloat(M_PI_2)), 0, -size.height)
case .Right:
rectTransform = CGAffineTransformTranslate(CGAffineTransformMakeRotation(CGFloat(-M_PI_2)), -size.width, 0)
case .Down:
rectTransform = CGAffineTransformTranslate(CGAffineTransformMakeRotation(CGFloat(-M_PI)), -size.width, -size.height)
default:
rectTransform = CGAffineTransformIdentity
}
rectTransform = CGAffineTransformScale(rectTransform, self.scale, self.scale)
let imageRef = CGImageCreateWithImageInRect(CGImage, CGRectApplyAffineTransform(rect, rectTransform))
return UIImage(CGImage: imageRef!, scale: self.scale, orientation: imageOrientation)
}
merge
// TODO
blur
使用GPUImage库
import GPUImage
let stillImageSource = GPUImagePicture(image: image)
let blurFilter = GPUImageiOSBlurFilter()
stillImageSource.addTarget(blurFilter)
blurFilter.useNextFrameForImageCapture()
stillImageSource.processImage()
let blurredImage = brightnessFilter.imageFromCurrentFramebuffer()
显示
显示原图像
在navBar、tabBar中,系统会更改图像的颜色,若想保持原图则需如下代码:
img = img.imageWithRenderingMode(.AlwaysOriginal)
读取
读取App图标
let image = UIImage(named:"AppIcon40x40")