我有一个问题。我需要将诸如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
对不起,我再次阅读了您的帖子,此扩展名是关于模糊的,您说这是您不想要的东西...好吧,如果人们去谷歌搜索模糊图像。对不起:(