我正在使用 Swift 开发一个带有相机功能的 iOS 应用程序,它需要在相机 View 上方有一个模糊层,中间有一个洞,如下图所示。
我尝试了几种方法,但都没有在不遮住洞的情况下添加模糊效果。在 Google 上花了一些时间后,我也没有找到可行的解决方案。
任何人都可以提供一些提示,说明如何只模糊附加到 ImageView 的 png 图像的非透明部分吗?
我尝试过的方法:
使用内置的 iOS 8 模糊效果
let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Dark) let blurEffectView = UIVisualEffectView(effect: blurEffect) maskImage.addSubview(blurEffectView)
使用“CIGaussianBlur”滤镜
var imageToBlur = CIImage(image: image) var blurfilter = CIFilter(name: "CIGaussianBlur") blurfilter.setValue(imageToBlur, forKey: "inputImage") var resultImage = blurfilter.valueForKey("outputImage") as! CIImage var blurredImage = UIImage(CIImage: resultImage) self.maskImage.image = blurredImage
我想要的视觉效果:
最佳答案
我通过创建一个带有上述模糊图像的图层的叠加层来完成此操作,然后使用从一直绕过范围的路径构建的蒙版,然后跳到切口孔,继续与缠绕填充规则相反的方向。
在此处引用文档:
虽然有很多记录在案的示例,但这里是一个: drawing with clear color on UIView (cutting a hole) in static method
关于ios - 如何在 Swift 中的动态相机 View 上方添加具有自定义形状的模糊蒙版?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31662931/