ios - 如何在 Swift 中的动态相机 View 上方添加具有自定义形状的模糊蒙版?

标签 ios swift camera blur

我正在使用 Swift 开发一个带有相机功能的 iOS 应用程序,它需要在相机 View 上方有一个模糊层,中间有一个洞,如下图所示。

我尝试了几种方法,但都没有在不遮住洞的情况下添加模糊效果。在 Google 上花了一些时间后,我也没有找到可行的解决方案。

任何人都可以提供一些提示,说明如何只模糊附加到 ImageView 的 png 图像的非透明部分吗?

我尝试过的方法:

  1. 使用内置的 iOS 8 模糊效果

    let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Dark)
    let blurEffectView = UIVisualEffectView(effect: blurEffect)
    maskImage.addSubview(blurEffectView)
    
  2. 使用“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
    

我想要的视觉效果:

enter image description here

最佳答案

我通过创建一个带有上述模糊图像的图层的叠加层来完成此操作,然后使用从一直绕过范围的路径构建的蒙版,然后跳到切口孔,继续与缠绕填充规则相反的方向。

在此处引用文档:

https://developer.apple.com/library/ios/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_paths/dq_paths.html

虽然有很多记录在案的示例,但这里是一个: drawing with clear color on UIView (cutting a hole) in static method

关于ios - 如何在 Swift 中的动态相机 View 上方添加具有自定义形状的模糊蒙版?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31662931/

相关文章:

ios - 在 iTunes Connect 中重复使用应用程序名称会出现验证错误

swift - 应用程序组不起作用(Swift)

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

android - 在预览屏幕中用 Titanium 裁剪图像

Android ImageView -相机

ios - 使用标签处理时 UIButton 图像未正确设置

ios - 看不到标签栏 Controller

iOS - Safari HTML5 Web Sockets 可以与同一设备上的应用程序通信吗?

programming-languages - Swift 中带和不带 @ 的关键字

ios - 如何从同一个 AVCaptureSession 捕获照片和视频?