Ios7 带模糊和圆形遮罩滤光片的GPUImageVideoCamera

Ios7 带模糊和圆形遮罩滤光片的GPUImageVideoCamera,ios7,gpuimage,Ios7,Gpuimage,我正在尝试建立一个用于录制和播放视频的用户界面。 我正在使用GPUImage框架,并希望将遮罩过滤器和GPUImageiOSBlurFilter应用于相机 目标: 我正在努力设置一切,以便我的输入(相机)在圆中未经过滤,但模糊过滤器在中心周围被遮罩,并应用于相机输出 当我这样构造链时: [_camera addTarget:_maskFilter]; [_maskPicture processImage]; [_maskPicture addTarget:_maskFilter]; [_mas

我正在尝试建立一个用于录制和播放视频的用户界面。 我正在使用GPUImage框架,并希望将遮罩过滤器和GPUImageiOSBlurFilter应用于相机

目标:

我正在努力设置一切,以便我的输入(相机)在圆中未经过滤,但模糊过滤器在中心周围被遮罩,并应用于相机输出

当我这样构造链时:

[_camera addTarget:_maskFilter];
[_maskPicture processImage];
[_maskPicture addTarget:_maskFilter];
[_maskFilter addTarget:_blurFilter];
[_blurFilter addTarget:_screen];
模糊过滤器会模糊视图中的所有内容,遮罩会在除中心外的所有位置剪切视频。 我的蒙版图像是一个带白色圆圈的黑色矩形

结果:


我如何构建一个过滤器链来帮助我实现上图中的UI——我正在寻找我应该朝哪个方向前进的提示。我目前正在查看GPUImageFilterGroups和视频缓冲区,以尝试在一些过滤器周围“路由”我输入的部分,但我在查找资源时遇到了困难

通过修改GPUImageGaussianSelectiveBlurFilter,您可以相当轻松地完成此操作

获取该过滤器的代码,并基于该代码创建一个新过滤器。在新的过滤器中,将GPUImageGaussianBlurFilter替换为GPUImageiOSBlurFilter。在片段着色器中,在最终的
mix()
命令中交换
sharpImageColor
bluredimagecolor
。这就是复制这种效果的原因


gpuimageGaussiAsSelectiveBlurFilter是一个过滤器组,用于遮罩和模糊圆内的内容,您希望反转该过滤器并使用更强的GPUImageiOSBlurFilter,因此上述修改将实现这一点。这将比试图将掩码作为单独的过滤器应用更有效,并且应该足够简单实现。

感谢Brad,这是一个非常优雅的解决方案,它将使代码更具可读性和可维护性!