GIFWriter
hoge1e3 edited this page Jan 23, 2020
·
4 revisions
画面やパネルの画像からアニメーションGIFを作成します.
Main
// 5フレーム後から撮影開始,撮影長さ30フレーム,終了後"anim.gif"というファイル名でダウンロード
g=new GIFWriter{delay=5,length=30,after="download",filename="anim.gif"};
x=100;y=100;
while(true) {
x++;
update();
}
new GIFWriter(param)
paramには,次の値をもつオブジェクトを渡します.
-
target
: 撮影対象となるPanelオブジェクト.省略すると$Screen
. -
delay
: 撮影開始するまでに待機するフレーム数.省略するとすぐに撮影開始. -
fps
: フレームレート.省略すると 15 -
interval
:フレームを撮影する間隔(1ならすべてのフレームを撮影,2なら2フレームに1回撮影).省略すると$Bootで指定されているフレームレートをfps
で割った値で算出. 例えば,$Bootで60FPSが指定されていて,fps
が15の場合,4フレームに1回撮影. -
length
: 撮影する期間をフレーム数で指定.省略した場合,save
またはdownload
メソッドが明示的に呼ばれるまで撮影する.- GIFファイルに実際に格納されるフレーム数は,length / interval になります.
-
after
:length
が指定されている場合,撮影完了後の動作を指定."save"
ならfiles/フォルダに保存,"download"
ならダウンロードを行う. -
filename
: 保存またはダウンロードするファイル名 -
manual
:true
の場合,start
,addFrame
,save
またはdownload
メソッドを明示的に呼び出して撮影する.
これらのメソッドは,主にmanual
がtrue
の時に用います.
- start
- 撮影を開始します.
- addFrame
- 現在のフレームを撮影します.startを呼んでいない場合は自動的に呼び出します.
- save(f)
- 撮影したGIF画像をファイルfに保存します.fはファイルオブジェクトかファイル名です.省略すると作成時の
filename
の値を参照.
- 撮影したGIF画像をファイルfに保存します.fはファイルオブジェクトかファイル名です.省略すると作成時の
- download(name)
- 撮影したGIF画像をnameというファイル名で保存します.
name
省略すると作成時のfilename
の値を参照.
- 撮影したGIF画像をnameというファイル名で保存します.
- save, download の各メソッドは,呼び出しが完了してもそれぞれの動作は完了しません.動作の完了を待つにはwaitForを利用してください.
例:
g=new GIFWriter{manual=true};
for (i=0; i<30; i++) {
g.addFrame();
update();
}
waitFor(g.save("anim.gif"));
print("Save complete!");