将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 。 查看文档以获取更多信息:

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

也许这是你的东西? 还没有尝试过,但在一篇文章中读过一次:

StackBlur

对不起,我再次阅读您的文章,这个扩展名是关于模糊UIImage,你说这是你不想要的东西…好吧,如果有人去Google模糊图像,我会留在这里。对不起:(