[BCB] 關於vfw使用於BCB |
尚未結案
|
cdklokBCB
一般會員 發表:15 回覆:27 積分:8 註冊:2003-02-19 發送簡訊給我 |
這是一個VC使用vfw撥放avi檔的範例
完整VC code如下,請問如何移植到BCB呢?
VC裡的cdc hdc hwnd如何在BCB裡run呢?
thanks... ///////======for Video for Window #include "vfw.h" HWND hWndC=NULL;
HWND hWnd=NULL;
CDC *pCDC=NULL; BITMAPINFO bmp;
BITMAPINFO *lpbi=NULL; ////=====for avi =============
char szFile[256];
//////====================
void CAvicapView::OnAvi()
{
// TODO: Add your command handler code here
OPENFILENAME ofn; // common dialog box structure
HWND hwnd; // owner window hwnd=GetSafeHwnd();
// Initialize OPENFILENAME
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.lpstrFile = szFile;
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = "AVI\0*.AVI\0All\0*.*\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; // Display the Open dialog box.
GetOpenFileName(&ofn); PAVIFILE pfile;
PGETFRAME pgf;
PAVISTREAM ppavi;
AVISTREAMINFO avis;
unsigned char *bits ; CDC *pcdc;
pcdc=GetDC(); int Width,Height;
long frame_no; bmp.bmiHeader.biSize=sizeof(bmp.bmiHeader);
bmp.bmiHeader.biBitCount =24;
bmp.bmiHeader .biPlanes =1;
bmp.bmiHeader .biCompression =BI_RGB;
bmp.bmiHeader .biWidth =320;
bmp.bmiHeader .biHeight =240;
bmp.bmiHeader .biSizeImage =320*240*3; lpbi=NULL;
AVIFileInit();
if(AVIFileOpen(&pfile,szFile,OF_READ,NULL)==0)
{
if (AVIFileGetStream(pfile, &ppavi, streamtypeVIDEO, 0)
!= AVIERR_OK)
{}
else
{
freeallrc(); if(AVIStreamInfo(ppavi, &avis, sizeof(avis))==0)
{
if (avis.fccType == streamtypeVIDEO) {
bmp.bmiHeader .biWidth = avis.rcFrame.right-avis.rcFrame.left;
bmp.bmiHeader .biHeight =avis.rcFrame.bottom-avis.rcFrame.top;
bmp.bmiHeader .biSizeImage =bmp.bmiHeader .biWidth*bmp.bmiHeader .biHeight*3;
Width=bmp.bmiHeader.biWidth;
Height=bmp.bmiHeader.biHeight;
lpbi=&bmp;
frame_no=avis.dwLength;
}
} pgf=AVIStreamGetFrameOpen(ppavi,0) ;
UpdateWindow();
for(int i=0;i<frame_no;i )
{
if(!lpbi)
break;
if((bits=(unsigned char *)AVIStreamGetFrame(pgf,i))==NULL)
{
MessageBox("Read frame error !!","error",MB_OK);
}
else
{
StretchDIBits(pcdc->GetSafeHdc(),0,0,Width,Height,0,0,Width,Height,bits sizeof(bmp.bmiHeader),(BITMAPINFO *)&bmp,DIB_RGB_COLORS,SRCCOPY);
}
}
AVIStreamGetFrameClose(pgf);
}
AVIFileRelease(pfile);
}
else
{
MessageBox("Avi file error !!","Error!!",MB_OK);
} AVIFileExit(); ReleaseDC(pcdc);
}
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
cdklokBCB您好: 可以參考下面連結
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25865
|
cdklokBCB
一般會員 發表:15 回覆:27 積分:8 註冊:2003-02-19 發送簡訊給我 |
引言: cdklokBCB您好: 可以參考下面連結 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25865此一VC範例純粹抓取一avi檔撥放... 不須camara,請問要如何改才能使BCB也有一樣的功能呢...? 查不到資料說...感激不盡.... |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
cdklokBCB
一般會員 發表:15 回覆:27 積分:8 註冊:2003-02-19 發送簡訊給我 |
還有上述VC碼...
GetOpenFileName(),BCB無法使用? 假如我想讀一個avi檔,然後再Form或image上顯示..
是這樣做呢???? 改自上述VC碼??如何改?? 還有VC的dc要改為這樣ㄇ????
StretchDIBits(Image1->Canvas->Handle,0,0,Width,Height,0,0,Width,Height,bits+sizeof(bmp.bmiHeader),(BITMAPINFO *)&bmp,DIB_RGB_COLORS,SRCCOPY); ??? 感激不盡.... 我BCB的include檔為
#include
|
cdklokBCB
一般會員 發表:15 回覆:27 積分:8 註冊:2003-02-19 發送簡訊給我 |
引言:~~~~ 因為我想要把從avi抓出來的圖片做效果然後再show出AVI... 比如我想把讀入的avi檔....show出有edge detection的avi畫面... 謝謝....引言: 此一VC範例純粹抓取一avi檔撥放... 不須camara,請問要如何改才能使BCB也有一樣的功能呢...?cdklokBCB 您好: vfw(video for windows)是為了抓取camera所擷取到的畫面所用的函式庫... 假如只是為了要播放*.avi的話,可用MediaPlayer或Animate元件^_^ |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
cdklokBCB您好:
引言:假如我想讀一個avi檔,然後再Form或image上顯示..請參考下面的code(我已經測試過)... void __fastcall TForm1::FormCreate(TObject *Sender) { MediaPlayer1->Display=Form1; MediaPlayer1->Open(); MediaPlayer1->FileName="c:\\windoes\\clock.avi"; } 若要在Imageg上則改成MediaPlayer1->Display=Image1->HostDockSite; |
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
如何由 AVI 檔案中將影像frame讀出來
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26175
------
︿︿ |
cdklokBCB
一般會員 發表:15 回覆:27 積分:8 註冊:2003-02-19 發送簡訊給我 |
引言: 如何由 AVI 檔案中將影像frame讀出來 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26175謝謝...我已經改成功了.... |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |