GPUImage:较暗的iOS 7模糊效果
我需要一个可靠,高效的方法来创buildiOS 7模糊效果。 我已经从WWDC代码实现了Apple的applyBlurWithRadius
(UIImage+ImageEffects)
。 它实际上是非常灵活的,它允许更改tintColor
也提供了创build一个像这样一个黑暗的模糊效果:
但它依赖于核心graphics,它正在降低表格视图中的滚动性能。 然后我看到了BradLarson的GPUImage库 ,它是GPUImageiOSBlurFilter
方法,它复制了iOS 7的效果,它的工作速度比UIImage+ImageEffects
,所以它在我看来更加实用。
但问题是,它没有像tintColor
这样的参数。 它创造像这里一样的效果。 还有其他GPUImage的filter,但我不知道我可以得到我想要的效果。
正如我在这里的评论中所描述的那样,GPUImageIOSBlurfilter提供的“白化”效果是由于我在该操作的最后一步应用的亮度范围限制造成的。 滤波器本身就是一个分组滤波器,图像首先被去饱和,下采样,高斯模糊,然后上采样,亮度范围被限制在最后一步。
最后一步是使用GPUImageLuminanceRangeFilter执行的,我使用这个GPUImageLuminanceRangeFilter来复制Apple似乎适用于大部分覆盖模糊的确切效果。 他们似乎在别人使用不同的颜色效果,所以模仿,你会想要改变filter的最后一步。
我可能会让用户以后可以将其指定为浅色,但现在,您可以基于GPUImageiOSBlurFilter和GPUImageLuminanceRangeFilter创build自定义滤镜,然后更改GPUImageLuminanceRangeFilter的实现,以将最终颜色更改为比最终颜色更深的颜色正常提供。 您将不得不尝试片段着色器中的值来查看产生所需效果的内容。
其他人已经做到了这一点,取得了良好的效果,但是还没有人把它作为一个拉动的要求。