我目前正在使用Brad Larson优秀的GPUImage框架来创建基于iPhone的应用程序,我想在相机输入的中心处理一个圆形区域,以便该部分模糊并且周围区域处于焦点。
我可以使用GPUImageGaussianSelectiveBlurFilter来实现相反的目的(即使屏幕的中心区域处于焦点并使周围区域模糊)。
有没有人知道通过创建基于GPUImageGaussianSelectiveBlurFilter的新过滤器来做到这一点的快速方法呢?
答案 0 :(得分:2)
这样的问题可能更适合项目的GitHub问题页面,考虑到它们对框架的具体程度,但我可以很快回答这个问题。
使用GPUImageGaussianSelectiveBlurFilter中的代码创建一个新过滤器,并替换片段着色器中的以下行:
gl_FragColor = mix(sharpImageColor, blurredImageColor, smoothstep(excludeCircleRadius - excludeBlurSize, excludeCircleRadius, distanceFromCenter));
带
gl_FragColor = mix(blurredImageColor, sharpImageColor, smoothstep(excludeCircleRadius - excludeBlurSize, excludeCircleRadius, distanceFromCenter));
这将反转从焦点圆内外的点采样哪个图像(模糊或清晰)。现在,您将使圆圈内的区域变得模糊,外部锐利。