如何Real Time處理 Avi檔案? |
尚未結案
|
kikikoko
一般會員 發表:4 回覆:8 積分:2 註冊:2003-05-16 發送簡訊給我 |
想請問各前輩們 我的程式需要Real Time處理,input為Avi檔,
我用下面的程式碼
if(Fetchf)
{
try
{
MyBmp = new Graphics::TBitmap;
MyCanvas =new TCanvas;
rect = MediaPlayer1->DisplayRect;
dc = GetDC(Panel1->Handle);
MyCanvas->Handle = dc;
MyBmp->Width = rect.Right - rect.Left;
MyBmp->Height = rect.Bottom - rect.Top;
MyBmp->Canvas->CopyRect(rect,MyCanvas,rect);
for(i=0;i
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
kikikoko您好:
可以將您的轉灰階部分也用scanline的方式試看看
能不能將出現線條的圖片上傳來看看...
for(j=0;j< Height;j ) { ptr = (Byte *)Bmp->ScanLine[j]; for(i=0;i< Width;i ) { b=ptr[i*3]; g=ptr[i*3 1]; r=ptr[i*3 2]; temp=0.299*r 0.587*g 0.114*b; ptr[i*3]=(Byte)temp; ptr[i*3 1]=(Byte)temp; ptr[i*3 2]=(Byte)temp; } }順心 <>~我也是在學習的階段,所以請您多多見諒與指教~> 發表人 - |
kikikoko
一般會員 發表:4 回覆:8 積分:2 註冊:2003-05-16 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
kikikoko您好:
方便將您的Project上傳至[會員求助程式檔案上傳區]嗎??
http://delphi.ktop.com.tw/forum.asp?FORUM_ID=97
我試看看 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~>
|
kikikoko
一般會員 發表:4 回覆:8 積分:2 註冊:2003-05-16 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
kikikoko您好:
試試加入 MyBmp->PixelFormat=pf24bit; 看看還會不會有很多直線條的情況..
我已經能用scanline的方式對一avi檔做灰階化處理了
我用的是MS 的MediaPlayer...因為我的BCB MediaPlayer壞掉了
[程式碼]修改來自您的 class="code">
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
int i,j,r,g,b,temp;
byte *ptr;
Graphics::TBitmap *MyBmp= new Graphics::TBitmap;;
TCanvas *MyCanvas= new TCanvas;;
HDC dc = GetDC(MediaPlayernew1->Handle);
TRect rect = MediaPlayernew1->ClientRect;
MyCanvas->Handle = dc;
MyBmp->Width = rect.Right - rect.Left;
MyBmp->Height = rect.Bottom - rect.Top;
MyBmp->Canvas->CopyRect(rect,MyCanvas,rect);
MyBmp->PixelFormat=pf24bit;
Graphics::TBitmap* Bmp=new Graphics::TBitmap();
Bmp->Assign(MyBmp);
for(j=0;j< Bmp->Height;j++)
{
ptr = (Byte *)Bmp->ScanLine[j];
for(i=0;i< Bmp->Width;i++)
{
b=ptr[i*3];
g=ptr[i*3+1];
r=ptr[i*3+2];
temp=0.299*r +0.587*g+0.114*b;
ptr[i*3]=(Byte)temp;
ptr[i*3+1]=(Byte)temp;
ptr[i*3+2]=(Byte)temp;
Image1->Picture->Bitmap->Assign(Bmp);
}
}
delete Bmp;
delete MyBmp;
delete MyCanvas;
}
[圖示]
順心 <>~我也是在學習的階段,所以請您多多見諒與指教~> 發表人 -
|
kikikoko
一般會員 發表:4 回覆:8 積分:2 註冊:2003-05-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |