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" 是可选的。在您的真实代码中,您应该处理失败的可能性并安全地解包选项。
我正在寻找示例代码如何将 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" 是可选的。在您的真实代码中,您应该处理失败的可能性并安全地解包选项。