用CCD擷取影像的問題 |
尚未結案
|
Demo99
一般會員 發表:2 回覆:8 積分:2 註冊:2003-06-27 發送簡訊給我 |
小弟使用一張MPEG4卡來擷取影像
程式中擷取影像的部分則是用那張卡附的SDK
擷取的function如下
StartVideoPreview(HANDLE hChannelHandle, HWND WndHandle, RECT *rect, BOOLEAN bOverlay,
int VideoFormat, int FrameRate);
那下面這行就是我打的(我希望顯示在Panel1上)
StartVideoPreview(ChannelHandle[0], Panel1->Handle, &rect, 0, vdfRGB16, 30); 現在出現的問題是畫面雖然有出來,顏色也正確
但位置卻永遠在原來Panel1的位置上,而且永遠在Top
也就是不管我如何移動Form,畫面也不會跟著跑,還可以超出視窗外面
而就算切換到其他視窗,該畫面仍出現在最上層
請問這是小弟給的handle沒設定好
還是他的SDK有問題呢?
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
Demo99您好:
因為我沒有您的硬體設備,所以不曉得怎麼幫您測試
但不知道您介不介意使用 class="code">
#include < vfw.h >
HWND vcHWND;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
vcHWND = capCreateCaptureWindow ( "Capture Window",
WS_CHILD | WS_VISIBLE ,0,0,320,240,Panel1->Handle, 0);//設定視窗大小
bool a = false;
for( int i = 0; i < 10; i )
{
a = capDriverConnect( vcHWND, i );
if( a ) break;
}
if( !a )
{
ShowMessage("攝影機連接失敗..");
}
capOverlay(vcHWND,true); //使用此Mode會有您所描述的現象
//capPreview(vcHWND,true); //使用此Mode則畫面會跟著您的Form移動
//capPreviewRate(vcHWND,33);
}
順心 <>~我也是在學習的階段,所以請您多多見諒與指教~> 發表人 -
|
Demo99
一般會員 發表:2 回覆:8 積分:2 註冊:2003-06-27 發送簡訊給我 |
謝謝taishyang的回應..今天才看到 ^^;
其實您說的方法小弟也有試過
只是系統抓不到CCD裝置...好像一定要用那張卡的SDK來擷取
後來修改了一下程式碼如下(綜合版?)...還是一樣的結果 XD HWND vcHWND;
vcHWND = capCreateCaptureWindow ( "Capture Window",
WS_CHILD | WS_VISIBLE ,0,0,320,240,Panel1->Handle, 0);//設定視窗大小
RECT rect;
SetRect(&rect, 0, 0, Panel1->Width, Panel1->Height);
StartVideoPreview(ChannelHandle[0], vcHWND, &rect, 0, vdfRGB16, 30);
capPreview(vcHWND, true); 只好暫時放棄解決這個BUG了
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |