ios - 将 GPUImage 过滤器应用于 UIView

标签 ios filter effect gpuimage

我有一个问题。我需要对整个 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/

相关文章:

ios7:如何跟踪通知等系统内部信息

ios - 在Swift中仅改组结构的一部分

ios - Google Places API、GMSAutocomplete 搜索仅适用于城市、国家 iOS Swift

css - 链接悬停的淡入淡出效果?

Jquery淡入淡出效果

ios - findObjectsInBackgroundWithBlock block 签名不正确

c# - 如何根据多个输入过滤DataView

java - 单击时 Android 微调器不显示

c# - 使用 DataSet 过滤两种不同的事物

javascript - 目标类元素而不是带有闪烁动画脚本的文档主体