« 【よみもの】もーりおのつぶやき 第19回 | メイン | HSPTV!メルマガ 第51号 »

2007年10月16日

【講座】HSP3ワンポイントテクニック 第26回

このコーナーでは、HSP3の変わった使用例や、気付きにくい機能
などを紹介していきたいと思います。
前回に引き続き、HSP3.1から追加されたhspcvプラグインの、
強力で面白い命令を紹介していきたいと思います。

画像ファイルの読み書きを、色々な形式で行なうことができると
いう紹介をしましたが、今回は一歩進んで動画(ムービー)ファイル
を扱ってみたいと思います。
ムービー関係は、Windowsの中でも扱いが複雑で手のかかる分野
の1つですが、hspcvでは、ごく簡単な方法でムービーファイルの
作成を行なうことができます。

#include "hspcv.as"

cvload "bgsamp.jpg",0

cvbuffer 1,640,480
cvmakeavi "test.avi",,,1

repeat 360
cvcopy 0,0,0,1
cvrotate cnt,1,0,0,,1
cvputavi
cvgetimg 1
redraw
await 0
loop

cvendavi
dialog "動画を保存しました。"
end

上の例では、「bgsamp.jpg」というファイル(sample以下の
hspcvフォルダに入っている画像ファイルです)を読み込んで
回転させたものを360フレーム分の動画として保存して
います。
このスクリプトを実行すると、ムービー(aviファイル)の
形式を選択するダイアログが表示されます。ここで、動画の
形式(コーデック)を選択すれば、それをもとに画像を圧縮する
ことになります。
生成された「test.avi」というファイルは、メディアプレイヤー
を始めとするツールで再生することができます。
つまり、HSPで作成した画面をそのまま動画データに変換する
ことができるわけです。使い道は、人それぞれですが、色々な
分野に応用できるのではないでしょうか。

コーデックを最初から固定して使用する場合には、cvmakeavi
命令のパラメーター2にfourccコードを指定します。
たとえば、ポビュラーなDivxコーデックを使用する場合は、

cvmakeavi "test.avi",$58564944,,1

のように指定すれば、Divxの標準的なプロファイルが使用
され、ムービーが作成されます。
fourccコードというのは、少し難しい話になりますが、
コーデックごとに用意されている4つの文字コードを
整数値に直したものです。
Divxのfourcc、'D','I','V','X'という文字列であれば、
それぞれの文字コードである$44,$49,$56,$58を逆順にして、
つなげれば整数値として使用できます。
(ちなみに、wmvのaviコーデックは、'W','M','V','3'。
Xvidは、'X','V','I','D'になります。)

まだまだhspcvには、色々な機能がありますので、皆さんも是非、
新機能を試してみてください。ではでは、また。

(おにたま)

投稿者 usuaji : 2007年10月16日 09:32

口臭チェッカー市場