按照網上的教程 , 用VS2013 寫視頻采集 , 發現 呼叫FindVideoPin()時出現未定義 , 請問是什么問題?
uj5u.com熱心網友回復:
C/C++ code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 #include <vfw.h> HWND hWndC,ghWndCap; void __fastcall TfmGoodsPhotoGet::sbCheckVideoClick(TObject *Sender) { bool bVFWFlag; int iVFWCount; if(!bCheckVideoEnable) {//探桿打開 hWndC = Panel8->Handle; //創建捕獲窗,其中hWnd為主視窗句柄 ghWndCap = capCreateCaptureWindow("Capture Window",WS_CHILD|WS_VISIBLE, 0,0,352,298,hWndC,0); bVFWFlag = false; iVFWCount = 0; while((iVFWCount<1000)&&(bVFWFlag==false)) { bVFWFlag = capDriverConnect(ghWndCap,0); iVFWCount++; } if(bVFWFlag==true) { CAPDRIVERCAPS caps; capDriverGetCaps(ghWndCap,sizeof(caps),&caps); if(caps.fHasOverlay) capOverlay(ghWndCap,TRUE); capPreviewScale(ghWndCap,1); capPreviewRate(ghWndCap,1000/24); // 設定Preview模式的顯示速率 capPreview(ghWndCap,TRUE); //啟動Preview模式 bCheckVideoEnable = true; sbCheckVideo->Caption = "關閉"; sbCapture->Enabled = true; } } else {//攝像頭關閉 if(ghWndCap) { capPreview(ghWndCap,false); capCaptureStop(ghWndCap); capCaptureAbort(ghWndCap); capDriverDisconnect(ghWndCap); ::DestroyWindow(ghWndCap); ghWndCap=NULL; bCheckVideoEnable = false; sbCheckVideo->Caption = "打開"; sbCapture->Enabled = false; } } } //---------------------------------------------------------------------------抓拍,僅供參考
C/C++ code?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 void __fastcall TfmGoodsPhotoGet::sbCaptureClick(TObject *Sender) { TJPEGImage *j=new TJPEGImage; Graphics::TBitmap *b=new Graphics::TBitmap; AnsiString asSaveFile; if(!bCheckVideoEnable) { lbOpInfo->Caption = "探桿未打開"; return; } if(ghWndCap) { int i; i=0; try { asSaveFile = fmMain->asPhotoDir + "\\photo.bmp"; capFileSaveDIB(ghWndCap,asSaveFile.c_str()); i=1; b->LoadFromFile(asSaveFile); i=2; j->Assign(b); j->CompressionQuality=100; //等級太高有可能壓縮出錯! j->Compress(); i=3; ms_Temp->Position = 0; j->SaveToStream(ms_Temp); i=4; ms_Temp->Position = 0; jpgTemp->LoadFromStream(ms_Temp); i=5; imgComm->Picture->Assign(jpgTemp); i=6; lbOpInfo->Caption = ""; } catch(...) { lbOpInfo->Caption = "抓拍失敗!"+ AnsiString(i); } } else { lbOpInfo->Caption = "未打開"; } delete b; delete j; } //---------------------------------------------------------------------------
uj5u.com熱心網友回復:
#include <vfw.h> HWND hWndC,ghWndCap; void __fastcall TfmGoodsPhotoGet::sbCheckVideoClick(TObject *Sender) { bool bVFWFlag; int iVFWCount; if(!bCheckVideoEnable) {//探桿打開 hWndC = Panel8->Handle; //創建捕獲窗,其中hWnd為主視窗句柄 ghWndCap = capCreateCaptureWindow("Capture Window",WS_CHILD|WS_VISIBLE, 0,0,352,298,hWndC,0); bVFWFlag = false; iVFWCount = 0; while((iVFWCount<1000)&&(bVFWFlag==false)) { bVFWFlag = capDriverConnect(ghWndCap,0); iVFWCount++; } if(bVFWFlag==true) { CAPDRIVERCAPS caps; capDriverGetCaps(ghWndCap,sizeof(caps),&caps); if(caps.fHasOverlay) capOverlay(ghWndCap,TRUE); capPreviewScale(ghWndCap,1); capPreviewRate(ghWndCap,1000/24); // 設定Preview模式的顯示速率 capPreview(ghWndCap,TRUE); //啟動Preview模式 bCheckVideoEnable = true; sbCheckVideo->Caption = "關閉"; sbCapture->Enabled = true; } } else {//攝像頭關閉 if(ghWndCap) { capPreview(ghWndCap,false); capCaptureStop(ghWndCap); capCaptureAbort(ghWndCap); capDriverDisconnect(ghWndCap); ::DestroyWindow(ghWndCap); ghWndCap=NULL; bCheckVideoEnable = false; sbCheckVideo->Caption = "打開"; sbCapture->Enabled = false; } } } //---------------------------------------------------------------------------
抓拍,僅供參考
void __fastcall TfmGoodsPhotoGet::sbCaptureClick(TObject *Sender) { TJPEGImage *j=new TJPEGImage; Graphics::TBitmap *b=new Graphics::TBitmap; AnsiString asSaveFile; if(!bCheckVideoEnable) { lbOpInfo->Caption = "探桿未打開"; return; } if(ghWndCap) { int i; i=0; try { asSaveFile = fmMain->asPhotoDir + "\\photo.bmp"; capFileSaveDIB(ghWndCap,asSaveFile.c_str()); i=1; b->LoadFromFile(asSaveFile); i=2; j->Assign(b); j->CompressionQuality=100; //等級太高有可能壓縮出錯! j->Compress(); i=3; ms_Temp->Position = 0; j->SaveToStream(ms_Temp); i=4; ms_Temp->Position = 0; jpgTemp->LoadFromStream(ms_Temp); i=5; imgComm->Picture->Assign(jpgTemp); i=6; lbOpInfo->Caption = ""; } catch(...) { lbOpInfo->Caption = "抓拍失敗!"+ AnsiString(i); } } else { lbOpInfo->Caption = "未打開"; } delete b; delete j; } //---------------------------------------------------------------------------
uj5u.com熱心網友回復:
發現 呼叫FindVideoPin()時出現未定義確保頭檔案包含
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/104391.html
上一篇:builder2010中的Gesture能實作畫面平滑的效果嗎
下一篇:如何實作百度云管家一樣的拖拽效果
