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