我用GetVideoStream,加上for迴圈,為何最多只能show74個frmae? |
答題得分者是:cmf
|
jchuang
一般會員 發表:41 回覆:36 積分:15 註冊:2003-08-08 發送簡訊給我 |
我用GetVideoStream(),加上for迴圈,為何最多只能show74個frmae呢??? // 取出 Video Stream
GetVideoStream("c:\\0_999.avi",&gapavi,&avis);
// 秀出指定的frame for(int k=0;k<=10000;k+=33)
{
Frame2TImage(&gapavi,&avis,19033+k,Image1);//畫出圖
}
bool TForm1::Frame2TImage (PAVISTREAM *gapavi,AVISTREAMINFO *avis,long miniSecond,TImage *Image1)
{
PGETFRAME gapgf; // GetFrame物件 //5. 對指定的 gapavi video stream 進行解壓縮,傳回 GetFrame物件放在gapgf中
if (avis->fccType == streamtypeVIDEO) {
gapgf = AVIStreamGetFrameOpen(*gapavi, NULL);
if (gapgf == NULL)
return false;
}
//6. 對指定的時間(2th) 計算相對應的frame
LONG lFrame;
lFrame = AVIStreamTimeToSample(*gapavi, miniSecond); //8. Get a video frame
BYTE abFormat[1024]; LPBITMAPINFOHEADER lpbi; // <----- the frame data
lpbi = (LPBITMAPINFOHEADER)abFormat; // 指定 lpbi的位址
// 傳回 Video frame的位址放在 lpbi
lpbi = (LPBITMAPINFOHEADER)AVIStreamGetFrame(gapgf,lFrame ); // 10. Paint Video HBITMAP hBitmap;
hBitmap=CreateDIBitmap( GetDC(NULL),lpbi,CBM_INIT,(BYTE *)lpbi+40,(BITMAPINFO *)lpbi,DIB_RGB_COLORS);
HBITMAP2TImage(hBitmap,Image1);
return true;
} bool TForm1::HBITMAP2TImage(HBITMAP hBitmap,TImage *Image1)
{
BITMAP bitmap;
Graphics::TBitmap *Bitmap1=new Graphics::TBitmap();
Bitmap1->Handle=hBitmap; // 取得 Bmp 的 Width & Height
GetObject(hBitmap,sizeof(BITMAP),&bitmap);
Image1->Width=bitmap.bmWidth;
Image1->Height=bitmap.bmHeight; // 把 Bitmap 畫在 Image1上
Image1->Canvas->Draw(0,0,Bitmap1);
delete Bitmap1;
Image1->Visible=true;
aa= CountColor(0,0);
ba= CountColor(1,0);
ca= CountColor(2,0);
da= CountColor(3,0);
ea= CountColor(4,0); m=CountFrame(aa,ba,ca,da,ea);//傳迴一個數值
Memo1->Lines->Add(IntToStr(m));
Memo1->Lines->SaveToFile("number.txt");
Image1->Repaint();
return true;
} 當執行完後發現最多只有run74個frame請問各位大大要如何修改,才能請較多的
frame呢??
感謝先前提供function的各位大大囉!!!!!!!!!1 < >< > 新手上路
------
新手上路 |
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
#include願以此功德 莊嚴佛淨土 上報四重恩 下濟三塗苦 若有見聞者 悉發菩提心 盡此一報身 同生極樂國
------
︿︿ |
shing187
一般會員 發表:45 回覆:63 積分:21 註冊:2003-01-15 發送簡訊給我 |
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
|
u9012021
一般會員 發表:21 回覆:19 積分:23 註冊:2005-01-18 發送簡訊給我 |
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
Q:請問一下 cmf大大 您寫的程式如何把從AVI檔讀到的Frames秀到Image的元件 上呢??
A: 無. 該程式是將影片秀到一個視窗上,並不是秀到Image的元件上 Q: HWND hWnd, char* szFilename
此兩個變數中szFilename應該是給AVI的路徑檔名吧??
A: YES Q: 那HWND hWnd此變數我看不懂~因為對WindowsSDK不熟~所以看不太懂
麻煩大大可以幫我解惑一下嗎~謝謝^^
A: HWND hWnd 是指定影片要秀到哪一個視窗上,該視窗的 HANDLE ================================================================= http://netbook.mm520.net/modules/newbb/newtopiclist.php?start=50
------
︿︿ |
u9012021
一般會員 發表:21 回覆:19 積分:23 註冊:2005-01-18 發送簡訊給我 |
引言: Q:請問一下 cmf大大 您寫的程式如何把從AVI檔讀到的Frames秀到Image的元件 上呢?? A: 無. 該程式是將影片秀到一個視窗上,並不是秀到Image的元件上 Q: HWND hWnd, char* szFilename 此兩個變數中szFilename應該是給AVI的路徑檔名吧?? A: YES Q: 那HWND hWnd此變數我看不懂~因為對WindowsSDK不熟~所以看不太懂 麻煩大大可以幫我解惑一下嗎~謝謝^^ A: HWND hWnd 是指定影片要秀到哪一個視窗上,該視窗的 HANDLE ================================================================= http://netbook.mm520.net/modules/newbb/newtopiclist.php?start=50再麻煩大大一個問題~如何吧HWND hWnd的影像轉成Timage或TBitmap的格式 使用Image的VCL元件作輸出呢~我用Image->Picture->Bitmap->Handle 輸入HWND hWnd變數~他會顯示在螢幕的左上角~ 我知道用Panel->Handle可以限制在Panel上面顯示~ 不過我想要的功能是使用Image來顯示~希望大大能指導一下~ 是否有SDK的函式可以轉換^^" |
S4225E
一般會員 發表:1 回覆:2 積分:0 註冊:2005-01-31 發送簡訊給我 |
"使用Image的VCL元件作輸出呢~我用Image->Picture->Bitmap->Handle
輸入HWND hWnd變數~他會顯示在螢幕的左上角~
我知道用Panel->Handle可以限制在Panel上面顯示~ " 這句話我實在看不懂,我是用 bcb
用以下寫法,但是不通,那該怎麼處理
strcpy(str1,"Open movie parent ");
strcat(str1,Panel1->Handle);
strcat(str1," style child");
mciSendString(str1,ret,128,0); 請大哥幫忙解囊,thanks! 巫
------
巫 |
u9012021
一般會員 發表:21 回覆:19 積分:23 註冊:2005-01-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |