2014-10-10 79 views
2

我正在尋找一種使用Swift將模糊效果添加到NSImage的方法。使用Swift向NSImage添加模糊

爲iOS開發,UIImage的提供像

applyLightEffectAtFrame:frame 

的方法......但我無法找到相等可可/ 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 
+0

核心圖像過濾器是一般等價物,以大量的圖像效果,你可以找到在iOS。 – CodaFi 2014-10-11 00:35:50

+0

編輯我的問題上面;我試圖用CIFilter思考我在一個很好的方式,但無法找到我如何可以將CIImage轉換回NSImage? – ixany 2014-10-11 12:41:16

+0

這是一個使用圖像代表的足夠簡單的過程。參見:http://stackoverflow.com/questions/17386650/converting-ciimage-into-nsimage – CodaFi 2014-10-11 21:50:44

回答

1

我剛好接口-Builder中添加內容過濾器,以我的NSImageView解決了這個問題。

0

以下(從here所)工作對我來說

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 

希望它可以幫助新來者