線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1493
推到 Plurk!
推到 Facebook!

圖檔merge問題?

答題得分者是:RaynorPao
hjlin
一般會員


發表:63
回覆:48
積分:22
註冊:2003-02-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-12 10:39:44 IP:61.230.xxx.xxx 未訂閱
我現在遇到一個圖檔結合的問題,希望你能幫我解答,我現在就是想做一個可以同時download 背景圖與物件圖的程式,然後問題是,我背景圖檔是用一個Image來開啟,而物件圖也是用一個Image來開啟,開啟的位置為一個位置,所以這樣看起來就有點像圖檔merge的功用一般,但問題來了,我要如何把Merge後的檔案save起來呢?因為兩個各分別位在不同的Image中??謝謝~~~
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-12 11:07:02 IP:203.204.xxx.xxx 未訂閱
hjlin, 您好 請參考以下taishyang版主的大作 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=32813 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-14 01:47:19 IP:61.221.xxx.xxx 未訂閱
引言: 我現在遇到一個圖檔結合的問題,希望你能幫我解答,我現在就是想做一個可以同時download 背景圖與物件圖的程式,然後問題是,我背景圖檔是用一個Image來開啟,而物件圖也是用一個Image來開啟,開啟的位置為一個位置,所以這樣看起來就有點像圖檔merge的功用一般,但問題來了,我要如何把Merge後的檔案save起來呢?因為兩個各分別位在不同的Image中??謝謝~~~
hjlin 你好:
請問?? 你所說的 merge 是像以下這個樣子嗎(範例程式碼)??
   >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<><>
備註:
你是不是還有很多問題都還沒有結案呢??

        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
hjlin
一般會員


發表:63
回覆:48
積分:22
註冊:2003-02-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-14 10:50:27 IP:61.56.xxx.xxx 未訂閱
為何我的"merge.bmp"讀不到東東??    //---------------------------------------------------------------------------    #include  #pragma hdrstop #include "Main.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Edit1->Text = ""; Edit3->Text = ""; } //--------------------------------------------------------------------------- void __fastcall TForm1::BackgroundClick(TObject *Sender) { if(OpenPictureDialog1->Execute()) { Image1->Picture->Bitmap->LoadFromFile(OpenPictureDialog1->FileName); } } //--------------------------------------------------------------------------- void __fastcall TForm1::SpriteClick(TObject *Sender) { if(OpenPictureDialog1->Execute()) { Image2->Picture->Bitmap->LoadFromFile(OpenPictureDialog1->FileName); } } //--------------------------------------------------------------------------- void __fastcall TForm1::Image2DragDrop(TObject *Sender, TObject *Source, int X, int Y) { TImage *buf = (TImage *)Source; buf->Left = X; buf->Top = Y; } //--------------------------------------------------------------------------- void __fastcall TForm1::Image2DragOver(TObject *Sender, TObject *Source, int X, int Y, TDragState State, bool &Accept) { if (Accept == true) { Edit1->Text = X; Edit3->Text = Y; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Graphics::TBitmap *bmp=new Graphics::TBitmap; bmp->Canvas->CopyMode=cmSrcAnd; SetStretchBltMode(bmp->Canvas->Handle, STRETCH_HALFTONE); bmp->Canvas->CopyRect(Rect(0, 0, 256, 224), Image1->Canvas,Rect(0, 0, 256, 224)); bmp->Canvas->CopyRect(Rect(0, 0, 256, 224), Image2->Canvas,Rect(0, 0, 256, 224)); bmp->SaveToFile("merge.bmp"); Image3->Picture->LoadFromFile("merge.bmp"); delete bmp; } //---------------------------------------------------------------------------
hjlin
一般會員


發表:63
回覆:48
積分:22
註冊:2003-02-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-14 11:16:45 IP:61.56.xxx.xxx 未訂閱
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-14 11:40:02 IP:203.73.xxx.xxx 未訂閱
引言:
hjlin 你好:
試試看把程式碼改成以下這個樣子
   >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    -- 
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
hjlin
一般會員


發表:63
回覆:48
積分:22
註冊:2003-02-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-14 13:03:26 IP:61.56.xxx.xxx 未訂閱
hjlin 你好: 試試看把程式碼改成以下這個樣子    Image1->Width=256;    Image1->Height=224;    Image1->Stretch=true;    Image1->Picture->Bitmap->LoadFromFile("back.bmp");    Image2->Width=100;    Image2->Height=124;    Image2->Stretch=true;    Image2->Picture->Bitmap->LoadFromFile("fore.bmp");    Image3->Width=256;    Image3->Height=224;    Image3->Stretch=true;    Image3->Canvas->CopyMode=cmSrcAnd;    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));    Image3->Canvas->CopyRect(Rect(0, 0, Image2->Width, Image2->Height),       Image2->Canvas, Rect(0, 0, Image2->Width, Image2->Height));    Image3->Picture->Bitmap->SaveToFile("merge.bmp");    "merge.bmp" 還是看不到
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-14 13:24:47 IP:140.135.xxx.xxx 未訂閱
hjlin您好:   如圖所示    我測試是可以看到的,BCB5.0 WinXp 並且merge.bmp會存在您的專案資料夾裡 您是否應將答題得分者指定為RaynorPao呢?? 發表人 - taishyang 於 2003/07/14 13:27:46
hjlin
一般會員


發表:63
回覆:48
積分:22
註冊:2003-02-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-07-14 13:27:52 IP:61.56.xxx.xxx 未訂閱
以下是我的完整程式~~我的問題出在哪邊呢? 非常疑惑~~~     #ifndef MainH #define MainH //--------------------------------------------------------------------------- #include #include #include #include <Forms.hpp> #include #include #include #include #include //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TMainMenu *MainMenu1; TMenuItem *LOAD1; TMenuItem *Background; TMenuItem *Edit2; TMenuItem *Sprite; TImage *Image1; TOpenPictureDialog *OpenPictureDialog1; TImage *Image2; TEdit *Edit1; TEdit *Edit3; TLabel *Label1; TLabel *Label2; TButton *Button1; TImage *Image3; void __fastcall SpriteClick(TObject *Sender); void __fastcall BackgroundClick(TObject *Sender); void __fastcall Image2DragDrop(TObject *Sender, TObject *Source, int X, int Y); void __fastcall Image2DragOver(TObject *Sender, TObject *Source, int X, int Y, TDragState State, bool &Accept); void __fastcall Button1Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif //--------------------------------------------------------------------------- #include #pragma hdrstop #include "Main.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Edit1->Text = ""; Edit3->Text = ""; } //--------------------------------------------------------------------------- void __fastcall TForm1::BackgroundClick(TObject *Sender) { if(OpenPictureDialog1->Execute()) { Image1->Picture->Bitmap->LoadFromFile(OpenPictureDialog1->FileName); } } //--------------------------------------------------------------------------- void __fastcall TForm1::SpriteClick(TObject *Sender) { if(OpenPictureDialog1->Execute()) { Image2->Picture->Bitmap->LoadFromFile(OpenPictureDialog1->FileName); } } //--------------------------------------------------------------------------- void __fastcall TForm1::Image2DragDrop(TObject *Sender, TObject *Source, int X, int Y) { TImage *buf = (TImage *)Source; buf->Left = X; buf->Top = Y; } //--------------------------------------------------------------------------- void __fastcall TForm1::Image2DragOver(TObject *Sender, TObject *Source, int X, int Y, TDragState State, bool &Accept) { if (Accept == true) { Edit1->Text = X; Edit3->Text = Y; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { //Graphics::TBitmap *bmp=new Graphics::TBitmap; Image1->Width=256; Image1->Height=224; Image1->Stretch=true; Image1->Picture->Bitmap->LoadFromFile("back.bmp"); Image2->Width=180; Image2->Height=180; Image2->Stretch=true; Image2->Picture->Bitmap->LoadFromFile("fore.bmp"); Image3->Width=256; Image3->Height=224; Image3->Stretch=true; Image3->Canvas->CopyMode=cmSrcAnd; 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)); Image3->Canvas->CopyRect(Rect(0, 0, Image3->Width, Image3->Height), Image2->Canvas, Rect(0, 0, Image2->Width, Image2->Height)); Image3->Picture->Bitmap->SaveToFile("merge.bmp"); //delete bmp; } //---------------------------------------------------------------------------
系統時間:2024-05-10 5:43:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!