GPUImageVideoCamera带有模糊和圆形遮罩滤镜

时间:2014-05-18 18:29:55

标签: ios7 gpuimage

我正在尝试构建用于录制和播放视频的UI。 我正在使用GPUImage框架,并希望将掩码过滤器和GPUImageiOSBlurFilter应用于相机。

目标:

http://placekitten.com

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

当我构建这样的链时:

[_camera addTarget:_maskFilter];
[_maskPicture processImage];
[_maskPicture addTarget:_maskFilter];
[_maskFilter addTarget:_blurFilter];
[_blurFilter addTarget:_screen];

模糊滤镜会模糊视图中的所有内容,并且除了中心以外,所有模板都会截断视频。 我的蒙版图像是一个带有白色圆圈的黑色矩形。

结果:

enter image description here

我如何构建一系列过滤器来帮助我实现上图中的UI - 我正在寻找一个方向,我应该去哪个方向。我目前正在查看GPUImageFilterGroups和视频缓冲区,尝试围绕某些过滤器“路由”我的输入部分,但我无法找到资源。

1 个答案:

答案 0 :(得分:1)

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

获取该过滤器的代码并根据它创建一个新的过滤器。在新的过滤器中,将GPUImageGaussianBlurFilter替换为GPUImageiOSBlurFilter。在片段着色器中,在最终sharpImageColor命令中交换blurredImageColormix()。这应该是复制这种效果。

GPUImageGaussianSelectiveBlurFilter是一个过滤器组,用于屏蔽和模糊圆圈内的事物,并且您希望将其反转并使用更强大的GPUImageiOSBlurFilter,因此上述修改将执行此操作。这比尝试将掩码应用为单独的过滤器更具性能,并且应该足够简单以实现。