影像檔結合問題 |
答題得分者是:RaynorPao
|
hjlin
一般會員 ![]() ![]() 發表:63 回覆:48 積分:22 註冊:2003-02-11 發送簡訊給我 |
我想要寫一個可以開啟前景,與後景的影像結合程式,當我按LOAD前景時,可以任意選一張前景圖,LOAD背景圖時,也可以任意選一張背景圖,問題是,我要如何把這兩張圖,儲存成一張NEW影像檔?
底下程式我有用到Drag-Drop功能,但效果很差,順便幫我解一下,要如何讓這功能更靈敏更順暢~~感恩啊!! //--------------------------------------------------------------------------- #include
|
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我想要寫一個可以開啟前景,與後景的影像結合程式,當我按LOAD前景時,可以任意選一張前景圖,LOAD背景圖時,也可以任意選一張背景圖,問題是,我要如何把這兩張圖,儲存成一張NEW影像檔? 底下程式我有用到Drag-Drop功能,但效果很差,順便幫我解一下,要如何讓這功能更靈敏更順暢~~感恩啊!! //--------------------------------------------------------------------------- #includehjlin 你好: 試試看以下的程式碼 Image1->Width=256; Image1->Height=224; Image1->Stretch=true; Image1->Picture->Bitmap->LoadFromFile("back.bmp"); Image2->Width=100; Image2->Height=123; Image2->Stretch=true; Image2->Picture->Bitmap->LoadFromFile("fore.bmp"); Image3->Width=Image1->Width; Image3->Height=Image1->Height; Image3->Stretch=true; Image3->Canvas->CopyMode=cmSrcCopy; SetStretchBltMode(Image3->Canvas->Handle, STRETCH_HALFTONE); Image3->Canvas->CopyRect(Rect(0, 0, Image3->Width, Image3->Height), Image1->Canvas, Rect(0, 0, Image1->Width, Image1->Height)); Image4->Width=Image2->Width; Image4->Height=Image2->Height; Image4->Left=Image3->Left; Image4->Top=Image3->Top; Image4->Stretch=true; Image4->Canvas->CopyMode=cmSrcCopy; SetStretchBltMode(Image4->Canvas->Handle, STRETCH_HALFTONE); Image4->Canvas->CopyRect(Rect(0, 0, Image4->Width, Image4->Height), Image2->Canvas, Rect(0, 0, Image2->Width, Image2->Height)); Image4->Picture->Bitmap->TransparentColor=clWhite; Image4->Transparent=true; Application->ProcessMessages(); TPoint ptLT1, ptRB1, ptLT2, ptRB2; ptLT1.x=Image3->Left; ptLT1.y=Image3->Top; ptRB1.x=Image3->Left Image3->Width; ptRB1.y=Image3->Top Image3->Height; ptLT2=Form1->ClientToScreen(ptLT1); ptRB2=Form1->ClientToScreen(ptRB1); HDC dc; dc=GetDC(0); TCanvas *canvas=new TCanvas; canvas->Handle=dc; Graphics::TBitmap *bmp=new Graphics::TBitmap; bmp->Width=Image3->Width; bmp->Height=Image3->Height; bmp->Canvas->CopyMode=cmSrcCopy; SetStretchBltMode(bmp->Canvas->Handle, STRETCH_HALFTONE); bmp->Canvas->CopyRect(Rect(0, 0, bmp->Width, bmp->Height), canvas, Rect(ptLT2.x, ptLT2.y, ptRB2.x, ptRB2.y)); bmp->SaveToFile("merge.bmp"); delete bmp; delete canvas; ReleaseDC(NULL, dc);相關連結: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=33868 -- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2003/07/14 17:21:39 發表人 - RaynorPao 於 2003/07/14 19:59:51
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
hjlin
一般會員 ![]() ![]() 發表:63 回覆:48 積分:22 註冊:2003-02-11 發送簡訊給我 |
|
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 包子老大: 你這個程式,我已經可以run了,非常謝謝~~ 但還是想問一個問題,我如果將前景圖任意移動位置時,(Drag-drop方法) merge後的圖檔會跟隨著改變嗎? 我發覺前景圖好像永遠停在左上角說~~~ hjlin 你好: (1)拜託~~別再叫我老大了,怪怪的
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |