Mac OS Xcode Swift 2.2将2个或更多NS图像组合成一个新的NSImage

时间:2016-07-02 18:54:09

标签: macos swift2 nsimage

我正在寻找示例代码如何将NSImages合并到一个新的NSImage for Mac OS(而不是Iphone IOS)。 THX

1 个答案:

答案 0 :(得分:4)

您可以使用Core Image中强大的过滤器合并两个NSImages。

在此示例中,我们使用了Core Image" CIAdditionCompositing"过滤

首先,从你想要混合的两个NSImages中制作CIImages,例如使用他们的URL:

let img1 = CIImage(contentsOfURL: yourFirstImageURL)
let img2 = CIImage(contentsOfURL: yourSecondImageURL)

然后初始化CIFilter:

let filter = CIFilter(name: "CIAdditionCompositing")!
filter.setDefaults()

合并这两个图像,你可以决定哪一个在另一个之前:

filter.setValue(img1, forKey: "inputImage")
filter.setValue(img2, forKey: "inputBackgroundImage")

let resultImage = filter.outputImage

回到NSImage:

let rep = NSCIImageRep(CIImage: resultImage!)
let finalResult = NSImage(size: rep.size)
finalResult.addRepresentation(rep)

finalResult // is your final NSImage

如果您需要合并多个图像,只需获取上一个合并操作的结果,然后使用相同的代码将其再次添加到另一个图像。

注意:在这个例子中,我强迫展开"可选项,为清楚起见。在您的真实代码中,您应该处理失败的可能性并安全地打开选项。