10

我正在使用NSImageView显示一个大约 80 帧的动画 GIF,每帧长 20 毫秒。NSImageView可以“开箱即用”地显示 GIF 动画,但问题是它需要太多的 CPU,大约持续 10%(在我的核心 i5 proc 上)。Instruments表明它花费了大量的 CPU 时间来解码 GIF。

为了提高效率,我尝试了以下方法但没有取得多大成功:

  • 将帧放入QTMovie并播放(我的进程使用 4%,播放电影的 QTKitServer 进程使用另外 15%)

  • 使用CGContextDrawImage直接绘制到视图(大约 5% 的 CPU 使用率)——我没有导出 GIF 的帧,我只是从我躺着的 30x30px .p​​ng 创建了一个CGImageRef

我不知道还能尝试什么。继承 NSImageView并以某种方式缓存图像听起来是个好主意,但是,唉,我是 Cocoa 的初学者......任何想法都会非常感激。谢谢!

4

0 回答 0