2011年1月10日 星期一

BCB--擷取WebCam使用

很簡單陽春的利用BCB擷取電腦USB視訊裝置,
開啟BCB後,先在Form1內放置一個Button1, 一個Timer1, 一個Panel1
接著將以下原始碼貼到Unit1.cpp
接著編譯完後,按下Button1即可看到視訊裝置畫面顯示在Panel裡面。

//原始碼開始
//---------------------------------------------------------------------------

#include
#pragma hdrstop
#include "Unit1.h"
#include
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HWND hCapWnd;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{

}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Form1->FormStyle=fsStayOnTop;//置頂
//Form1->FormStyle=fsNormal;//正常
hCapWnd=capCreateCaptureWindow (
"Capture Window",
WS_CHILD | WS_VISIBLE , // placement-order handle
0, // horizontal position
0, // vertical position
640, // width
480, // height
Panel1->Handle, // window-positioning flags
0);
capDriverConnect(hCapWnd,0);//連結驅動程式
capOverlay(hCapWnd,true);//影像直接傳入電腦,不需要通過cpu的暫存器
capPreviewRate(hCapWnd,1000/6);//每一秒影像變化張數,數值越大,速度會越慢
capPreview(hCapWnd,true);//影像出現在視窗中
capPreviewScale(hCapWnd,true);//影像延伸到所設定的視窗大小
Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
//原始碼結束


////////////////////////////////////我是分隔線=口=/////////////////////////////////////////////
附註說明:
----------------------------------------------
語法capGetDriverDescription 函數
BOOL VFWAPI capGetDriverDescription(
WORD wDriverIndex,
LPTSTR lpszName,
INT cbName,
LPTSTR lpszVer,
INT cbVer
);
參數
wDriverIndex
捕獲驅動器的索引。該索引的範圍是0~9. 隨插即用的捕獲驅動器將首先被程式枚舉,
之後是註冊表中的捕獲驅動器,再之後是位於SYSTEM.INI檔中的捕獲驅動器。

lpszName
指向一個緩衝,它包含捕獲驅動器的名字。

cbName
緩衝的大小。

lpszVer
指向一個緩衝,該緩衝包含了捕獲驅動器的相關描述。

cbVer
lpszVer緩衝的大小。
返回值
成功,返回TRUE,失敗,返回FALSE。
備註
如果描述資訊的長度大於承載它的緩衝,則該描述會被截取。如果緩衝大小為0,則不拷貝描述資訊

1 則留言:

  1. 可以請教要怎麼做去背效果嗎?我才剛接觸影像處理!謝謝!

    回覆刪除