QuickTimeムービー作成関数


PP Basicではウィンドウに表示されている画像を使用して簡単にQuickTimeムービーを作成することが出来ます。
また、ディスク上のQuickTimeムービーファイルを開き、フレームをPICT変数に取り込むことも可能です。
これらの機能を組み合わせて、実験で作成したムービーの画像計測や、家庭で撮影したムービーの特殊効果画像処理などに応用できます。


QuickTimeパラメータの設定:movieSetParams
movieSetParams(frameDuration)

ムービーの1フレームの長さを設定します。
ムービーの1フレームの長さは、ムービータイムスケール単位で指定します。
ムービーのタイムスケールとは、「1秒を何等分するか」を決める数字で、QuickTimeでは、ムービー時間は全てこのタイムスケールで表記されます。
例えば、タイムスケールが600であれば、300は0.5秒であり、1200は2秒になります。

frameDurationのデフォルト値は60、タイムスケールは600に設定されていますので、デフォルトでの1フレームの長さは1/10秒になります。


QuickTime出力ファイル開く:movieOpenWriteStream movieOpenWriteStream("filename")
movieOpenWriteStream

出力用QuickTimeムービーファイルを開きます。引数を与えない場合、Macintoshの標準ファイルオープンダイアログボックスによりファイルを選択できます。

出力用ムービーファイルのフレームサイズはメインウィンドウの描画領域のサイズと同一になりますので、movieOpenWriteStreamを実行する前にsetMainWinSizeでウィンドウのサイズを調整してください。

QuickTime出力ファイルへの画像書き込み:movieAddCurFrame movieAddCurFrame

メインフレーム内の画像をムービーに書き込みます。


QuickTime出力ファイルを閉じる:movieCloseWriteStream
movieCloseWriteStream

現在開かれている出力用ムービーファイルを閉じます。


QuickTime入力ファイルを開く:movieOpenReadStream
movieOpenReadStream(ID,"filename")

入力用QuickTimeムービーファイルを開きます。
ファイル名を引数で与えない場合、Macintoshの標準ファイルオープンダイアログボックスによりファイルを選択できます。
PP Basicでは、同時に3つまでのムービー入力ストリームを開くことが可能で、ファイルを開くときにストリームID(1〜3)を指定します。


QuickTime入力ファイルのタイムスケールの取得:movieGetTimeScale
movieGetTimeScale(ID,scale)

入力用ムービーのタイムスケールを調べ、結果を変数scaleに返します。


QuickTime入力ファイルの長さの取得:movieGetDuration
movieGetDuration(ID,dur)

入力用ムービーの長さを調べ、結果を変数durに返します。
ムービーの長さはムービータイムスケールで与えられます。
(例)ムービータイムスケール=600の場合、10秒のムービーの長さ=6000


QuickTime入力ファイルからの画像読み込み:movieGetFrame
movieGetFrame(ID,time,mypict)

入力用ムービーからtimeで指定した時刻の画像をPICT変数mypictに格納します。
timeはムービータイムスケールで指定します。


QuickTime入力ファイルを閉じる:movieCloseReadStream
movieCloseReadStream(ID)

入力用ムービーを閉じます。



#-----------------------------ムービー作成サンプルコード
cls
TextFont("Times")
TextSize(24)
#----------------------ダイアログボックスでファイルを指定
movieOpenWriteStream
#---------------引数でファイルを指定する場合はこちらを使用
# movieOpenWriteStream("Macintosh HD:files:myMovie:mov1.mov")

for i=1 to 100
cls
RGBForeColor(0,0,0)
MoveTo(50,100)
DrawString("Welcome to Post Plot 3D for Macintosh.")
MoveTo(50,140)
DrawNumber(i,10,6,0)
RGBForeColor(1,0,0)
MoveTo(0,92)
for j=1 to 500
y=sin(j/500*3.141592*4+i/100*3.141592*4)
LineTo(j,y*90+90)
next j
#----------------------現在の画像をムービーファイルに転送
movieAddCurFrame
next i

#----------------------ムービーファイルを閉じる
movieCloseWriteStream

#-----------------------------結果


[ムービーを見る(1Mb)]

 


その他のムービー作成サンプルコード

latM2D3.bas