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

Mac OS Xcode Swift 2.2 Combine 2 or more NS images into a one new NSImage

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

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

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

首先,从您要混合的两个 NSImage 制作 CIImage,例如使用它们的 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

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

注意:在这个例子中,为了清楚起见,我 "force unwrapping" 是可选的。在您的真实代码中,您应该处理失败的可能性并安全地解包选项。