let context = CIContext(options:[kCIContextUseSoftwareRenderer:true])
let inputImage = CIImage(CGImage: image.CGImage)
let filter = CIFilter(name:"CIGaussianBlur")
filter.setValue(inputImage, forKey: kCIInputImageKey)
let result = filter .valueForKey(kCIOutputImageKey) as CIImage
let cgImage = context.createCGImage(result, fromRect: inputImage.extent())
let returnImage = UIImage(CIImage: result, scale: UIScreen.mainScreen().scale, orientation: .Up)
return returnImage!
使用GPU时代码正常工作,这意味着使用nil选项创建CIContext.But使用CPU时,代码卡在上 - [CIContext createCGImage:fromRect:]
堆栈如下所示。似乎sdk尝试使用OpenCL进行计算但失败了。
答案 0 :(得分:0)
至少在这里是一种解决方法:在iOS 8及更高版本中,您不再需要指定kCIContextUseSoftwareRenderer。