我有一个问题。我需要对整个 UIView
应用像 Pixelate 或 Blur
这样的滤镜。
就像 eBay iPad
应用程序一样。
我想使用 GPUImage
但我不知道该怎么做。
有没有一种方法可以直接将滤镜应用于 GPUImageView
而无需传递 UIImage
?
主要问题是在 iPad
3rd 上制作大型 UIView
的屏幕截图非常昂贵(UIWindow
抓取 2 秒).所以完美的解决方案是将过滤器直接应用于 View ,就像 eBay 应用程序一样,但是..如何?
感谢大家!
最佳答案
要将 View 拉入 GPUImage,您可以使用 GPUImageUIElement 源,它将 UIView 或 CALayer 作为输入。 FilterShowcase 示例应用程序中有一个这样的示例。
这确实依赖于底层 CALayer 的 -renderInContext:
方法,重绘 View 可能代价高昂。但是,如果 View 是静态的,则只需使用一次此更新,生成的图像将作为纹理缓存在 GPU 上。在那之后应用到它的过滤器操作将非常快。
关于ios - 将 GPUImage 过滤器应用于 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13968233/