Мне нужно создать фильм из серии сгенерированных изображений. (Я создаю изображения на основе результатов программы физического моделирования.)
Я нашел образец Apple в QtKitCreateMovie и использовал его в качестве отправной точки. Вместо загрузки jpgs из пакета приложения я рисую в 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, у меня заканчивается память, если я пытаюсь создать фильм с тысячами кадров. Это также заставляет меня думать, что я использую неправильный подход.