将GPUImagefilter应用于UIView
我有一个问题。 我需要应用像Pixelate or Blur
滤镜到整个UIView
。 就像eBay iPad
应用程序一样。
我以为使用GPUImage
但我不知道该怎么做。 有一种方法可以直接将filter应用于GPUImageView
,而无需传递UIImage
?
主要的问题是,在iPad
3上制作一个大的UIView
的截图是昂贵的( UIWindow
抓取2秒)。 所以完美的解决scheme是直接应用filter的意见,就像易趣的应用程序,但..如何?
谢谢大家!
要将视图拉入GPUImage,可以使用GPUImageUIElement源,该源将UIView或CALayer作为input。 FilterShowcase示例应用程序中有一个例子。
这确实依赖于底层CALayer的-renderInContext:
方法,这对于重新绘制视图可能是昂贵的。 但是,如果视图是静态的,则只需要使用此更新一次,并将生成的图像作为纹理caching在GPU上。 在该点之后应用到它的filter操作将非常快速。
您可以通过将CIFilter
应用到您的视图layer.filters
属性来实现您的layer.filters
。 查看文档以获取更多信息:
也许这是你的东西? 还没有尝试过,但在一篇文章中读过一次:
StackBlur
对不起,我再次阅读您的文章,这个扩展名是关于模糊UIImage,你说这是你不想要的东西…好吧,如果有人去Google模糊图像,我会留在这里。对不起:(