我需要一种可靠,高效的方法来创建iOS 7模糊效果。我已经从WWDC代码applyBlurWithRadius
实施了Apple的(UIImage+ImageEffects)
。它实际上非常灵活,它允许更改tintColor
也可以创建一个更暗的模糊效果,如下所示:
但它依赖于Core Graphics,它正在降低表视图中的滚动性能。然后我看到BradLarson's GPUImage library及其GPUImageiOSBlurFilter
方法复制了iOS 7效果,它的工作速度比UIImage+ImageEffects
快得多,所以它似乎更适用于我的情况下。
但问题是,它没有像tintColor
这样的参数。它创造了whity效果like here。还有其他的GPUImage过滤器,但我不确定我能得到我想要的效果。
答案 0 :(得分:2)
正如我在评论here中所描述的那样,GPUImageiOSBlur过滤器提供的“白化”效果是由于我在该操作的最后一步中应用的亮度范围限制。滤波器本身是一个分组滤波器,首先对图像进行去饱和和下采样,高斯模糊,然后在最后一步中对上采样和亮度范围进行限制。
最后一步是使用GPUImageLuminanceRangeFilter执行的,我构建它是为了复制Apple似乎适用于大多数叠加模糊的确切效果。但是,它们似乎在其他颜色效果中使用了不同的颜色效果,因此模仿您希望更改过滤器中的最后一步。
我可能会把这个用户稍后可以指定为淡色的东西,但是现在你可以创建自己的基于GPUImageiOSBlurFilter和GPUImageLuminanceRangeFilter的自定义过滤器,并改变你的GPUImageLuminanceRangeFilter的实现来改变最终颜色变暗比通常提供的。您将不得不尝试使用该片段着色器中的值来查看产生所需效果的内容。
其他人已经这样做了,效果很好,但还没有人把它作为拉动请求反馈。