0

我能够从 MPMoviePlayer 中的缩略图生成 CGImage。我想要做的是在图像上应用过滤器并尽快将其显示在设备上(可能在 UIImageView 中)。

这里需要注意的是,我需要将过滤器应用于视频的每一帧,以便用户在视频流中看到过滤后的图像,而不会出现延迟。

目前我得到缩略图,应用我的过滤器,并将我的 UIImageView.image 设置为这个过滤后的图像。过滤器工作正常,图像显示,但应用程序确实滞后。有什么办法可以加快这个速度吗?

我也尝试过使用 CAdisplaylink,因为这帮助我加快了多个 UIImage 一次在屏幕上飞来飞去的速度,但在这种情况下它没有做任何事情。任何帮助,将不胜感激。

谢谢你。

4

1 回答 1

0

使用 Brad Larsons GPUImage 框架。简而言之……太棒了。

概述如下: GPUImage 框架是一个 BSD 许可的 iOS 库,可让您将 GPU 加速的滤镜和其他效果应用于图像、实时摄像机视频和电影。与 Core Image(iOS 5.0 的一部分)相比,GPUImage 允许您编写自己的自定义过滤器,支持部署到 iOS 4.0,并具有更简单的界面。但是,它目前缺少 Core Image 的一些更高级的功能,例如面部检测。

对于处理图像或实时视频帧等大规模并行操作,GPU 比 CPU 具有一些显着的性能优势。在 iPhone 4 上,一个简单的图像过滤器在 GPU 上的执行速度比同等的基于 CPU 的过滤器快 100 倍以上。

这是链接 https://github.com/BradLarson/GPUImage包含指向 git 存储库的页面、详细信息和示例项目,其中使用许多过滤器完成实时处理。

于 2012-08-16T01:29:13.763 回答