我目前正在使用布拉德·拉尔森(Brad Larson)出色的GPUImage框架来创建基于iPhone的应用程序,并且我想处理相机输入中心的圆形区域,以使部分模糊并且周围区域清晰。

我可以使用GPUImageGaussianSelectiveBlurFilter来实现相反的效果(即,使屏幕的中心区域焦点对准并且周围区域变得模糊)。

有人知道基于GPUImageGaussianSelectiveBlurFilter创建一个新过滤器的方法吗?

最佳答案

鉴于此类问题对框架的具体程度,此类问题在GitHub问题页面上可能更适合该项目,但我可以很快回答。

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

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




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


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

10-08 08:26