【问题标题】:GPUImageVideoCamera with blur and circular mask filter带有模糊和圆形蒙版滤镜的 GPUImageVideoCamera
【发布时间】:2014-05-20 05:03:14
【问题描述】:

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

目标:

我正在努力设置所有内容,以便我的输入(相机)在圆圈中未经过滤,但模糊滤镜在中心周围被遮盖并应用于相机输出。

当我这样构造链时:

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

模糊滤镜使视图中的所有内容都变得模糊,而蒙版则将视频中的所有内容都剪掉了,但中心除外。 我的蒙版图像是一个带有白色圆圈的黑色矩形。

结果:

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

【问题讨论】:

    标签: ios7 gpuimage


    【解决方案1】:

    您可以通过修改 GPUImageGaussianSelectiveBlurFilter 相当轻松地做到这一点。

    获取该过滤器的代码并基于它创建一个新过滤器。在您的新过滤器中,将 GPUImageGaussianBlurFilter 替换为 GPUImageiOSBlurFilter。在片段着色器中,在最后的 mix() 命令中交换 sharpImageColorblurredImageColor。复制这个效果应该就是这样。

    GPUImageGaussianSelectiveBlurFilter 是一个过滤器组,它可以屏蔽和模糊一个圆圈内的东西,而您想要反转它并使用更强的 GPUImageiOSBlurFilter,所以上面的修改会做到这一点。这将比尝试将掩码应用为单独的过滤器更高效,并且应该足够简单以实现。

    【讨论】:

    • 谢谢布拉德,非常优雅的解决方案,它将使代码更具可读性和可维护性!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 2016-04-11
    相关资源
    最近更新 更多