Ios 如何在UIImage中使用过滤器、CGBitmapContextCreate和CGBitmapInfo?

Ios 如何在UIImage中使用过滤器、CGBitmapContextCreate和CGBitmapInfo?,ios,swift,core-graphics,core-image,Ios,Swift,Core Graphics,Core Image,我想应用核心图像过滤器在iOS 8上的Swift中对UIImage对象进行各种CG操作,但在使用CGBitmapContextCreate()时遇到了一些困难,尤其是在使用CGBitmapInfo参数时,我想将其设置为Swift兼容的等价物,即上次与Objective C一起使用的常量KCgimageAlphaPremultiplied 我想要一些如何做这些事情的工作示例。这里有一个示例,说明如何通过首先创建CGBItmapContext对图像执行CG操作 func setImageMaskCo

我想应用核心图像过滤器在iOS 8上的Swift中对UIImage对象进行各种CG操作,但在使用CGBitmapContextCreate()时遇到了一些困难,尤其是在使用CGBitmapInfo参数时,我想将其设置为Swift兼容的等价物,即上次与Objective C一起使用的常量KCgimageAlphaPremultiplied


我想要一些如何做这些事情的工作示例。

这里有一个示例,说明如何通过首先创建CGBItmapContext对图像执行CG操作

func setImageMaskColor(srcImage: UIImage, color: UIColor) -> UIImage {
    var bounds = CGRectMake(0, 0, srcImage.size.width, srcImage.size.height)
    var colorSpace = CGColorSpaceCreateDeviceRGB()
    let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.PremultipliedFirst.rawValue)
    var ctx = CGBitmapContextCreate(nil,
                    CGImageGetWidth(srcImage.CGImage),
                    CGImageGetHeight(srcImage.CGImage),
                    CGImageGetBitsPerComponent(srcImage.CGImage),
                    CGImageGetBytesPerRow(srcImage.CGImage),
                    CGImageGetColorSpace(srcImage.CGImage),
                    bitmapInfo)!
    CGContextDrawImage(ctx, bounds, srcImage.CGImage)
    CGContextSetBlendMode(ctx, kCGBlendModeSourceAtop)
    CGContextSetFillColorWithColor(ctx, color.CGColor)
    CGContextFillRect(ctx, bounds);
    var resultCGimage = CGBitmapContextCreateImage(ctx)
    CGContextDrawImage(ctx, bounds, resultCGimage)
    return UIImage(CGImage: resultCGimage)!
}

下面是一个如何对UIIimage执行核心图像过滤的示例

func imageAdjustHue(srcImage: UIImage, hue: CGFloat) -> UIImage {
    var colorParam = [ kCIInputAngleKey : hue ]
    var ciimage = CIImage(CGImage: srcImage.CGImage)
    let filteredImage = ciimage.imageByApplyingFilter("CIHueAdjust", withInputParameters: colorParam)
    return UIImage(CIImage: filteredImage!)!
}