GPUImageGaussianSelectiveBlurFilter - 但相反

时间:2012-08-13 16:33:32

标签: iphone blur gpuimage

我目前正在使用Brad Larson优秀的GPUImage框架来创建基于iPhone的应用程序,我想在相机输入的中心处理一个圆形区域,以便该部分模糊并且周围区域处于焦点。

我可以使用GPUImageGaussianSelectiveBlurFilter来实现相反的目的(即使屏幕的中心区域处于焦点并使周围区域模糊)。

有没有人知道通过创建基于GPUImageGaussianSelectiveBlurFilter的新过滤器来做到这一点的快速方法呢?

1 个答案:

答案 0 :(得分:2)

这样的问题可能更适合项目的GitHub问题页面,考虑到它们对框架的具体程度,但我可以很快回答这个问题。

使用GPUImageGaussianSelectiveBlurFilter中的代码创建一个新过滤器,并替换片段着色器中的以下行:

gl_FragColor = mix(sharpImageColor, blurredImageColor, smoothstep(excludeCircleRadius - excludeBlurSize, excludeCircleRadius, distanceFromCenter)); 

gl_FragColor = mix(blurredImageColor, sharpImageColor, smoothstep(excludeCircleRadius - excludeBlurSize, excludeCircleRadius, distanceFromCenter));

这将反转从焦点圆内外的点采样哪个图像(模糊或清晰)。现在,您将使圆圈内的区域变得模糊,外部锐利。