請問可以把自己的動作(加滑鼠)製程 .avi ??? |
尚未結案
|
tender
初階會員 發表:23 回覆:90 積分:37 註冊:2002-09-26 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
tinochen
一般會員 發表:0 回覆:18 積分:8 註冊:2002-07-16 發送簡訊給我 |
|
tender
初階會員 發表:23 回覆:90 積分:37 註冊:2002-09-26 發送簡訊給我 |
|
tinochen
一般會員 發表:0 回覆:18 積分:8 註冊:2002-07-16 發送簡訊給我 |
|
tender
初階會員 發表:23 回覆:90 積分:37 註冊:2002-09-26 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
tender
初階會員 發表:23 回覆:90 積分:37 註冊:2002-09-26 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 抓螢幕圖OK,但是沒有mouse耶??tender 你好: 請參考以下的做法 < class="code"> void __fastcall TForm1::Button2Click(TObject *Sender) { Graphics::TBitmap *bmpBuf; HDC hdc; int x,y; HCURSOR hCur; ICONINFO IconInfo; POINT pt; hdc=::GetDC(0); x=Screen->Width; y=Screen->Height; bmpBuf=new Graphics::TBitmap; bmpBuf->Handle=::CreateCompatibleBitmap(hdc, x, y); ::BitBlt(bmpBuf->Canvas->Handle, 0, 0, bmpBuf->Width, bmpBuf->Height, hdc, 0, 0, SRCCOPY); hCur=GetCursor(); IconInfo.fIcon=FALSE; GetIconInfo(hCur, &IconInfo); GetCursorPos(&pt); pt.x-=IconInfo.xHotspot; pt.y-=IconInfo.yHotspot; DrawIcon(bmpBuf->Canvas->Handle, pt.x, pt.y, hCur); bmpBuf->SaveToFile("C:\\bmpBuf.bmp"); delete bmpBuf; } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
tender
初階會員 發表:23 回覆:90 積分:37 註冊:2002-09-26 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: ya!! 有mouse了,接下來就是將他們變成 .avi/.mv了 but how to do , I just know CCD save to it??這樣抓下來的是一張張的圖檔 .avi或.gif動畫檔中都是儲存 前後兩張圖片的相異處 也就是有改變的區域來儲存 這樣空間才會比較小 有一個辦法 可以用Delphi附的.GIF產生程式範例 再用.GIF去轉.AVI的格式 會不會粉囉唆? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
tender
初階會員 發表:23 回覆:90 積分:37 註冊:2002-09-26 發送簡訊給我 |
|
tender
初階會員 發表:23 回覆:90 積分:37 註冊:2002-09-26 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 剛剛我試了一下,抓螢幕圖然後秀再Image1上,發現了一個天大的錯誤 就是,抓圖貼圖好慢喔,是否還要做其他的運算呢?? 還有,當第二次以後抓圖時,抓到的圖會像鏡子一樣一直深進去,有辦法解決嗎?? 其實我試想做一個小程式,就是開個小視窗在旁邊,小視窗可以即時看到自己的 動作,已可以錄下來,之後,再發展到 Intranet .所以想要實作看看, 難道方向錯了嗎?? 可以提供建議嗎?? >>< face="Verdana, Arial, Helvetica"> tender 你好: 方便把你的程式碼貼上來嗎?? --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
tender
初階會員 發表:23 回覆:90 積分:37 註冊:2002-09-26 發送簡訊給我 |
報告大大;;
code 如下:: //--------------------------------------------------------------------------- #include
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
tender 你好:
試試看~~改成以下這樣
(情況會改善一點~~但期望不要太高)
< class="code">
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Timer1->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Timer1->Interval=50;
Timer1->Enabled=false;
Image1->Width=400;
Image1->Height=300;
Image1->Stretch=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
Timer1->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Graphics::TBitmap *bmpBuf;
HDC hdc;
int x,y;
HCURSOR hCur;
ICONINFO IconInfo;
POINT pt;
int iconW, iconH; hdc=::GetDC(0);
x=Screen->Width;
y=Screen->Height;
bmpBuf=new Graphics::TBitmap;
bmpBuf->Width=Image1->Width;
bmpBuf->Height=Image1->Height;
bmpBuf->Handle=::CreateCompatibleBitmap(hdc, bmpBuf->Width, bmpBuf->Height);
::StretchBlt(bmpBuf->Canvas->Handle, 0, 0, bmpBuf->Width, bmpBuf->Height,
hdc, 0, 0, x, y, SRCCOPY);
hCur=GetCursor();
IconInfo.fIcon=FALSE;
GetIconInfo(hCur, &IconInfo);
GetCursorPos(&pt);
pt.x-=IconInfo.xHotspot;
pt.y-=IconInfo.yHotspot; pt.x=(long)((double)pt.x*(double)Image1->Width/(double)x);
pt.y=(long)((double)pt.y*(double)Image1->Height/(double)y); ICONMETRICS IconMtr;
IconMtr.cbSize=sizeof(ICONMETRICS);
SystemParametersInfo(SPI_GETICONMETRICS, 0, &IconMtr, 0);
iconW=(int)((double)IconMtr.iHorzSpacing*(double)Image1->Width/(double)x);
iconH=(int)((double)IconMtr.iVertSpacing*(double)Image1->Height/(double)y); DrawIconEx(bmpBuf->Canvas->Handle, pt.x, pt.y, hCur, iconW, iconH, 0, NULL, DI_NORMAL | DI_COMPAT); TJPEGImage *jpg=new TJPEGImage();
jpg->PixelFormat=jf8Bit;
jpg->CompressionQuality=50; //壓縮率
jpg->Assign(bmpBuf);
jpg->Compress();
Image1->Picture->Assign(jpg);
delete jpg;
delete bmpBuf;
ReleaseDC(NULL, hdc);
}
//---------------------------------------------------------------------------
備註:
抓到的圖會像鏡子一樣一直深進去,有辦法解決嗎??
這個問題~~很正常啊(你仔細想一想就會知道了) -- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2003/02/12 10:57:53
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
tender
初階會員 發表:23 回覆:90 積分:37 註冊:2002-09-26 發送簡訊給我 |
|
tender
初階會員 發表:23 回覆:90 積分:37 註冊:2002-09-26 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |