我有一个问题。我需要将Pixelate or Blur
这样的过滤器应用于整个UIView
。
就像eBay iPad
app。
我想使用GPUImage
,但我不知道该怎么做。
有一种方法可以直接将过滤器应用于GPUImageView
,而无需通过UIImage
?
主要问题是在UIView
3日制作大iPad
的屏幕截图是昂贵的(UIWindow
抓取时间为2秒)。因此,完美的解决方案是将过滤器直接应用于视图,就像eBay应用程序一样,但是......怎么样?
感谢大家!
答案 0 :(得分:8)
要将视图拉入GPUImage,您可以使用GPUImageUIElement源,它将UIView或CALayer作为输入。在FilterShowcase示例应用程序中有一个这样的例子。
这确实依赖于底层CALayer的-renderInContext:
方法,这对于重绘视图来说可能很昂贵。但是,如果视图是静态的,您只需要使用此更新一次,结果图像将作为纹理缓存在GPU上。在该点之后应用于它的过滤器动作将非常快。
答案 1 :(得分:1)
您可以通过将CIFilter
应用于您的观看layer.filters
媒体资源来实现您的目光。查看文档以获取更多信息:
答案 2 :(得分:0)
也许这适合你?没试过,但在一篇文章中读过它:
对不起,我再次阅读你的帖子,这个扩展是关于模糊UIImage,你说这是你不想要的东西...... 好吧,如果人们去谷歌搜索模糊图像,我会留在这里。 对不起:(