4

如何将两个或多个 CIImage 组合成另一个。我尝试使用 ciContext.drawImage。我如何从中获得 CGImage ?我所理解的是,我正在写一个我应该能够从中获取图像的上下文。请让我知道我是否理解有任何错误。

let eaglContext = EAGLContext(API: .OpenGLES2)
let ciContext = CIContext(EAGLContext: eaglContext)
ciContext.drawImage(firstCIImage, inRect: firstRect, fromRect: secondRect)
ciContext.drawImage(secondCIImage, inRect: secondRect, fromRect: secondRect)
4

2 回答 2

4

你可以尝试这样的事情:

    var outputImage: CIImage?
    let images : Array<CIImage> = [] // add all your CIImages that you'd like to combine
    for image in images {
        outputImage = outputImage == nil ? image : image.imageByCompositingOverImage(outputImage!)
    }
    var cgImage: CGImageRef
    if let image = outputImage {
        let eaglContext = EAGLContext(API: .OpenGLES2)
        let ciContext = CIContext(EAGLContext: eaglContext)
        cgImage = ciContext.createCGImage(image, fromRect: image.extent)
    }
于 2015-11-05T22:07:33.340 回答
2

您应该为此使用 CIFilter-s :)

教程

于 2015-08-13T19:29:51.907 回答