cb019 「VideoForWindows を使ったビデオキャプチャー Webカメラ」(04/09/16 Thu)

 

← 戻る C++ Builderメニュー 次へ → ☆ Top ☆

 

いやー最近Webカメラ安いッスねー。数千円で買えちゃいますネー。まぁだいたいカメラ買えばソフトついてきますが、まーそこはホラ、自分で作ってみたい病なので・・・つくりた〜い!

で、VBの時に確かVFWっつーの使ったような気がするんでそこらへんで。後々はDirectXなんかにしたいんですがネ!

☆プレビューの再生と停止☆

//---------------------------------------------------------------------------
#include <vcl.h> //最初からある
#pragma hdrstop //最初からある
#include "Unit1.h" //最初からある
#include <vfw.h> //VideoForWindows
//---------------------------------------------------------------------------
#pragma package(smart_init) //最初からある
#pragma resource "*.dfm" //最初からある
TForm1 *Form1; //最初からある
HWND HWcama;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HWcama = capCreateCaptureWindow(
"CapWindow",WS_CHILD | WS_VISIBLE, //ウィンドウの名前とスタイル
1, 1, 320, 240, //表示開始位置とサイズ
Panel1->Handle,NULL); //表示ハンドル
capDriverConnect( HWcama, 0 ); //チャンネル1に接続
capPreviewRate( HWcama, 1 ); //プレビューレートの設定
capPreview( HWcama, TRUE );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
capDriverDisconnect(HWcama); //ドライバ解放 
}
//---------------------------------------------------------------------------

えーと・・・何から説明するやら・・・とりあえずフォームには、ボタン2個とパネル1個つくりました。それぞれ、再生ボタン、停止ボタン、画面用パネルです。

ヘッダ部分には、#include <vfw.h> を追加します。

次に、コード外で、ハンドル「HWcama」を宣言してます。これいろんなとこで使うんで、つい・・・。

あとはまぁセットです。「capCreateCaptureWindow」で初期化です。「capDriverConnect」これにハンドルとチャンネルを渡すことで接続します。チャンネル1(1つめのカメラ)は0です。チャンネル2(2つめのカメラ)は1です。これは、キャプチャデバイスが複数あるときに、変更します。もちろんハンドルとセットで。「capPreviewRate」にハンドルとフレームレート(ミリ秒)を渡します。フレームレートっつっても1フレームあたりの時間ですし、とりあえず普通は66msecぐらい(15fps)でしょうが、別にそれよりちっこい値でも自動でなんとかしてくれます。「capPreview」で、ハンドル指定して、Trueを渡せばプレビュースタート。Falseを渡せばストップです。まぁストップはどうでもいいですが。

一応最後に、「capDriverDisconnect」でドライバの開放しときます。が、これだけでは単に映像が見えるだけです。

 

← 戻る C++ Builderメニュー 次へ → ☆ Top ☆

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送