将GPUImage过滤器应用于UIView

时间:2012-12-20 08:46:47

标签: ios filter effect gpuimage

我有一个问题。我需要将Pixelate or Blur这样的过滤器应用于整个UIView。 就像eBay iPad app。

一样

我想使用GPUImage,但我不知道该怎么做。 有一种方法可以直接将过滤器应用于GPUImageView,而无需通过UIImage

主要问题是在UIView 3日制作大iPad的屏幕截图是昂贵的(UIWindow抓取时间为2秒)。因此,完美的解决方案是将过滤器直接应用于视图,就像eBay应用程序一样,但是......怎么样?

感谢大家!

3 个答案:

答案 0 :(得分:8)

要将视图拉入GPUImage,您可以使用GPUImageUIElement源,它将UIView或CALayer作为输入。在FilterShowcase示例应用程序中有一个这样的例子。

这确实依赖于底层CALayer的-renderInContext:方法,这对于重绘视图来说可能很昂贵。但是,如果视图是静态的,您只需要使用此更新一次,结果图像将作为纹理缓存在GPU上。在该点之后应用于它的过滤器动作将非常快。

答案 1 :(得分:1)

您可以通过将CIFilter应用于您的观看layer.filters媒体资源来实现您的目光。查看文档以获取更多信息:

https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CALayer_class/Introduction/Introduction.html

答案 2 :(得分:0)

也许这适合你?没试过,但在一篇文章中读过它:

StackBlur

对不起,我再次阅读你的帖子,这个扩展是关于模糊UIImage,你说这是你不想要的东西...... 好吧,如果人们去谷歌搜索模糊图像,我会留在这里。 对不起:(