我創建在viewDidLoad中使用此功能,下面的viewController在viewDidLoad中塊UI圖像使用高斯模糊
func applyBlurEffect(image: UIImage){
let imageToBlur = CIImage(image: image)!
let blurfilter = CIFilter(name: "CIGaussianBlur")!
blurfilter.setValue(10, forKey: kCIInputRadiusKey)
blurfilter.setValue(imageToBlur, forKey: "inputImage")
let resultImage = blurfilter.value(forKey: "outputImage") as! CIImage
let croppedImage: CIImage = resultImage.cropping(to: CGRect(x:0,y: 0,width: imageToBlur.extent.size.width,height: imageToBlur.extent.size.height))
let context = CIContext(options: nil)
let blurredImage = UIImage (cgImage: context.createCGImage(croppedImage, from: croppedImage.extent)!)
self.backImage.image = blurredImage
}
的這段代碼塊的UI和的viewController 3-4秒後,打開一個模糊的效果,但的滯後。我不想在沒有blurEffect的情況下呈現UI,以及我不希望用戶在打開viewController時等待3-4秒。 請提供此問題的最佳解決方案。
你確定因爲這種模糊效果只會花費更多時間嗎?您是否通過評論模糊效果代碼進行測試? – Lion
是沒有這個功能調用沒有時間滯後 –
你可以用原始圖像呈現視圖控制器,並在後臺線程上執行模糊處理,並且在模糊處理準備好後取代圖像會有很好的效果嗎? – ubiAle