生成された一連の画像からムービーを作成する必要があります。(私は物理モデリングプログラムの出力に基づいて画像を作成しています。)
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];
これはOSX10.5で機能しますが、OS X 10.6では、次の呼び出しで境界を超えた配列インデックスの例外が発生しますaddImage:forDuration:withAttributes
:(http://openradar.appspot.com/radar?id=1146401)
10.6未満の映画を作成する適切な方法は何ですか?
また、これは10.5で動作しますが、数千フレームのムービーを作成しようとするとメモリが不足します。それはまた、私が正しいアプローチを使用していないと私に思わせます。