Добавление размытия к NSImage с помощью Swift

Я ищу способ добавить эффект размытия в NSImage с помощью Swift.

разрабатывается для 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

person ixany    schedule 10.10.2014    source источник
comment
Базовые фильтры изображения являются общим эквивалентом многих эффектов изображения, которые вы можете найти в iOS.   -  person CodaFi    schedule 11.10.2014
comment
отредактировал мой вопрос выше; я пытался использовать CIFilter, думая, что я на правильном пути, но не мог узнать, как я могу преобразовать CIImage обратно в NSImage?   -  person ixany    schedule 11.10.2014
comment
Это достаточно простой процесс с использованием изображений. См.: stackoverflow.com/questions/17386650/   -  person CodaFi    schedule 12.10.2014


Ответы (2)


Следующее (взято из здесь) работает для меня

    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

Надеюсь поможет новичкам

person Q8i    schedule 22.04.2015

Я решил эту проблему, просто добавив фильтр содержимого в свой NSImageView в Interface-Builder.

person ixany    schedule 15.10.2014