我正在使用 NSImageView 来显示大约80帧的动画GIF,每帧长20ms。 NSImageView 可以“开箱即用”显示GIF动画,但问题是它需要太多的CPU,大约连续10%(在我的核心i5 proc上)。 Instruments 表明它花费了大量的CPU时间来解码GIF。
为了提高效率,我尝试了以下方面但没有取得多大成功:
将帧放入 QTMovie 并播放(我的进程使用4%,播放电影的QTKitServer进程使用15%)
使用 CGContextDrawImage (〜5%CPU使用率)直接绘制到视图 - 我没有导出GIF的帧,我刚创建了一个 CGImageRef 一个30x30px .png,我躺在那里。
我不知道还有什么可以尝试的。子类化 NSImageView 并以某种方式缓存图像听起来是个好主意,但是,唉,我是Cocoa的初学者......任何想法都会受到高度赞赏。谢谢!