我正在寻找示例代码如何将NSImages合并到一个新的NSImage for Mac OS(而不是Iphone IOS)。 THX
答案 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
如果您需要合并多个图像,只需获取上一个合并操作的结果,然后使用相同的代码将其再次添加到另一个图像。
注意:在这个例子中,我强迫展开"可选项,为清楚起见。在您的真实代码中,您应该处理失败的可能性并安全地打开选项。