我目前正在使用 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));
这将反转从焦圈内外的点采样的图像(模糊或锐利)。您现在将使圆圈内的区域变得模糊,而外部则变得清晰。