将GPUIMAGE过滤器应用于Uiview



我有一个问题。我需要将诸如Pixelate or Blur之类的过滤器应用于整个UIView。像eBay iPad应用一样。

我想使用GPUImage,但我不知道该怎么做。没有通过UIImage直接将过滤器应用于GPUImageView的方法?

主要问题是在iPad 3rd上制作大型UIView的屏幕截图是昂贵的(UIWindow Grabs 2秒)。因此,完美的解决方案是像eBay应用一样直接将过滤器应用于视图,但是..

如何?

感谢所有人!

要将视图拉到gpuimage中,您可以使用gpuimageuielement源,该源将Uiview或Calayer作为输入。在filtershowcase示例应用程序中有一个例子。

这确实依赖于基础calayer的-renderInContext:方法,这对于重新绘制视图可能很昂贵。但是,如果视图是静态的,则只需要使用此更新一次,而所得图像将在GPU上作为纹理缓存。在那之后应用于它的过滤操作将非常快。

您可以通过将CIFilter S应用于视图layer.filters属性来实现所追求的外观。检查文档以获取更多信息:

https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/calayer_class/introduction/introduction.html

也许这是适合您的?没有尝试过,但在一篇文章中阅读了一次:

stackblur

对不起,我再次阅读了您的帖子,此扩展名是关于模糊的,您说这是您不想要的东西...好吧,如果人们去谷歌搜索模糊图像。对不起:(

最新更新