前回、GHC単独でアニメーションが動くところまでやった。
しかし、おおいなる問題があったのだ。
それは、こんな風に動くのだと言いながら、示したのは静止画だったのだ。
ここは何とか、実際にどのように動くのかを見せねば良くないだろう。
1つの方法はHaskellが直接動くようにして見せることだが、それは大掛かり過ぎる。
もっと、どこからでも、手軽に見える、確認できるようにしたい。
ということで、動いている動画を、アニメーションGIFというファイル形式で録画して見せることにしよう。
アニメーションGIFなら、ほとんどのブラウザで見えるはずだ。
動画をどうやったら録画できるのだろうか、勉強しなくちゃいけない。
ということで、ちょっと調べた。今回は、このあたりの話をする。
使っているパソコンは、Ubuntu/Linuxなのだ。ここには膨大なフリーソフトがつまっている。
何かきっとあるだろう。
実際、いくつかあったのだが、極めて安直にウィンドウの録画ができそうなのを調べたら、
Making a GIF screencast が出てきた。byzanzというソフトがUbuntuにはあり、GIFファイルを吐き出してくれる。ピッタシ!
インストールは、Synapticパッケージマネージャでやったので、説明は省略。ちょっとツンツンしただけだ。
fuji$ byzanz-record --help
Usage:
byzanz-record [OPTION...] record your current desktop session
Help Options:
-?, --help Show help options
--help-all Show all help options
--help-gtk Show GTK+ Options
Application Options:
-d, --duration=SECS Duration of animation (default: 10 seconds)
--delay=SECS Delay before start (default: 1 second)
-l, --loop Let the animation loop
-c, --cursor Record mouse cursor
-x, --x=PIXEL X coordinate of rectangle to record
-y, --y=PIXEL Y coordinate of rectangle to record
-w, --width=PIXEL Width of recording rectangle
-h, --height=PIXEL Height of recording rectangle
-v, --verbose Be verbose
--display=DISPLAY X display to use
ということで早速録画しようとしたのだが、全画面を録画するのは良いのだが、指定したウィンドウだけを録画しようとしたら、録画するウィンドウの位置を指定しないといけないのだった。
ということで、今度は、xwininfo を起動し、Haskell/Glossのアニメーションウィンドウをクリックし、配置を確認した。
fuji$ xwininfo
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.
xwininfo: Window id: 0x2ebe5b8 (has no name)
Absolute upper-left X: 10
Absolute upper-left Y: 10
Relative upper-left X: 10
Relative upper-left Y: 10
Width: 246
Height: 266
Depth: 0
Visual: 0x21
..................以下省略
ということで、左上隅が (10,10)で、246×266の部分を録画すればよいことがわかった。
fuji$ byzanz-record -d 60 --delay=0 -x 20 -y 10 -w 246 -h 266 byzanz-record-sample.gif
とやると、リターンキーを押した直後から60秒間録画され、最後に指定したファイルにアニメーションGIFファイルが作られる。
今回試しにつくったのがこれだ。サイズは、300KBと、動きが単純なこともあり、たいして大きくない。
これで、作られたアニメーションがどんなものか見せることができるようになった。
ということで、今日はここまで。