cocoa - Errors with CIFilter and Swift 2: '_' is not convertible to 'String' + Type of expression is ambiguous without more context -


i used piece of code in swift 1.2 (adapted objective-c snippet found on so) apply blur effect on image.

it working ok can't convert swift 2, i'm not sure understand error messages , can't find documentation has changed.

error message:

'_' not convertible 'string'

and:

type of expression ambiguous without more context

extension worked 1.2:

extension nsimage {     func gaussianblurofradius(radius: cgfloat) -> nsimage {         let image = self         image.lockfocus()         let beginimage = ciimage(data: image.tiffrepresentation!)         // error message highlights next line         let params = [kciinputimagekey: beginimage, kciinputradiuskey: radius]         let filter = cifilter(name: "cigaussianblur", withinputparameters: params)         var output = filter.valueforkey("outputimage") as! ciimage         let rect = nsmakerect(0, 0, self.size.width, self.size.height)         output.drawinrect(rect, fromrect: rect, operation: nscompositingoperation.compositesourceover, fraction: 1)         image.unlockfocus()         return image     } } 

enter image description here

update:

following duncan's idea, i've added explicit type declaration:

let params: [string: anyobject] = [kciinputimagekey: beginimage, kciinputradiuskey: radius] 

enter image description here

but doesn't fix it, though removes error message type ambiguity.

extension nsimage {     func gaussianblurofradius(radius: cgfloat) -> nsimage {         let image = self         image.lockfocus()         let beginimage = ciimage(data: image.tiffrepresentation!)!         let params = [kciinputimagekey : beginimage, kciinputradiuskey: radius]         let filter = cifilter(name: "cigaussianblur", withinputparameters: params)!         let output = filter.valueforkey("outputimage") as! ciimage         let rect = nsmakerect(0, 0, size.width, size.height)         output.drawinrect(rect, fromrect: rect, operation: nscompositingoperation.compositesourceover, fraction: 1)         image.unlockfocus()         return image     } } 

or

extension nsimage {     func gaussianblurofradius(radius: cgfloat) -> nsimage {         let image = self         image.lockfocus()         let beginimage = ciimage(data: image.tiffrepresentation!)         let filter = cifilter(name: "cigaussianblur")!         filter.setvalue(beginimage, forkey: kciinputimagekey)         filter.setvalue(radius, forkey: kciinputradiuskey)         let output = filter.valueforkey("outputimage") as! ciimage         let rect = nsmakerect(0, 0, size.width, size.height)         output.drawinrect(rect, fromrect: rect, operation: nscompositingoperation.compositesourceover, fraction: 1)         image.unlockfocus()         return image     } } 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -