Я использую этот код, чтобы размыть мои UIImage
extension UIImage {
func blurred(radius: CGFloat) -> UIImage {
let ciContext = CIContext(options: nil)
guard let cgImage = cgImage else { return self }
let inputImage = CIImage(cgImage: cgImage)
guard let ciFilter = CIFilter(name: "CIGaussianBlur") else { return self }
ciFilter.setValue(inputImage, forKey: kCIInputImageKey)
ciFilter.setValue(radius, forKey: "inputRadius")
guard let resultImage = ciFilter.value(forKey: kCIOutputImageKey) as? CIImage else { return self }
guard let cgImage2 = ciContext.createCGImage(resultImage, from: inputImage.extent) else { return self }
return UIImage(cgImage: cgImage2)
}
}
Но для возврата изображения из этой операции требуется много времени.
На самом деле эта операция занимает около 2 секунд:
guard let cgImage2 = ciContext.createCGImage(resultImage, from: inputImage.extent) else { return self
}
Я не тестировал его на реальном устройстве, но не уверен, что код эффективен