使用Swift向NSImage添加模糊

使用Swift向NSImage添加模糊,swift,nsimage,nsimageview,Swift,Nsimage,Nsimageview,我正在寻找一种使用Swift向NSImage图像添加模糊效果的方法 在为iOS开发时,UIImage提供了如下方法 applyLightEffectAtFrame:frame 。。。但我找不到与Cocoa/OSX应用程序相同的东西 编辑1:我尝试使用CIFilter: let beginImage = CIImage(data: responseData) let filter = CIFilter(name: "CIGaussianBlur") filter.setValue(beginIm

我正在寻找一种使用Swift向NSImage图像添加模糊效果的方法

在为iOS开发时,UIImage提供了如下方法

applyLightEffectAtFrame:frame
。。。但我找不到与Cocoa/OSX应用程序相同的东西

编辑1:我尝试使用CIFilter:

let beginImage = CIImage(data: responseData)
let filter = CIFilter(name: "CIGaussianBlur")
filter.setValue(beginImage, forKey: kCIInputImageKey)
filter.setValue(0.5, forKey: kCIInputIntensityKey)
// HOW CAN I MAKE AN NSIMAGE OUT OF THE CIIMAGE?
let newImage = ???
imageView.image = newImage

我解决了这个问题,只需在Interface Builder中为我的NSImageView添加一个内容过滤器。

以下内容(摘自)对我有用

    var originalImage = NSImage(named: "myImageName")
    var inputImage = CIImage(data: originalImage?.TIFFRepresentation)
    var filter = CIFilter(name: "CIGaussianBlur")
    filter.setDefaults()
    filter.setValue(inputImage, forKey: kCIInputImageKey)
    var outputImage = filter.valueForKey(kCIOutputImageKey) as CIImage
    var outputImageRect = NSRectFromCGRect(outputImage.extent())
    var blurredImage = NSImage(size: outputImageRect.size)
    blurredImage.lockFocus()
    outputImage.drawAtPoint(NSZeroPoint, fromRect: outputImageRect, operation: .CompositeCopy, fraction: 1.0)
    blurredImage.unlockFocus()

    imageView.image = blurredImage

希望它能帮助新来者

核心图像过滤器一般相当于你在iOS上可以找到的许多图像效果;我试着使用CIFilter,认为这是一个很好的方法,但没有找到如何将CIImage转换回NSImage?这是一个使用图像重复的足够简单的过程。见: