我需要从一系列生成的图像中创建电影。(我正在根据物理建模程序的输出创建图像。)
我在 QtKitCreateMovie 中找到了 Apple 的示例并将其用作起点。我没有从应用程序包中加载 jpg,而是绘制到 NSImage,然后将该 NSImage 添加到电影对象。这是我用于测试的基本代码。mMovie
是一个实例QTMovie
:
NSImage *anImage = [[NSImage alloc] initWithSize:NSMakeSize(frameSize, frameSize)];
[anImage lockFocus];
float blendValue;
for (blendValue = 0.0; blendValue <= 1.0; blendValue += 0.05) {
[[[NSColor blueColor] blendedColorWithFraction:blendValue ofColor:[NSColor redColor]] setFill];
[NSBezierPath fillRect:NSMakeRect(0, 0, frameSize, frameSize)];
[mMovie addImage:anImage forDuration:duration withAttributes:myDict];
}
[anImage unlockFocus];
[anImage release];
这在 OS X 10.5 下有效,但在 OS X 10.6 下我得到一个数组索引超出边界异常调用addImage:forDuration:withAttributes
:(http://openradar.appspot.com/radar?id=1146401)
在 10.6 下创建电影的正确方法是什么?
此外,虽然这在 10.5 下工作,但如果我尝试创建具有数千帧的电影,我会耗尽内存。这也让我觉得我没有使用正确的方法。