全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1442
推到 Plurk!
推到 Facebook!

BMP 顏色顯示問題

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


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-17 14:13:35 IP:61.56.xxx.xxx 未訂閱
請問一個有關BMP顏色顯示的問題 A.bmp 為 W:256 H:224 顏色:256色 void __fastcall TForm1::Open_btnClick(TObject *Sender) { Image1->Picture->LoadFromFile("A.bmp"); Image1->Stretch=true; } 但經過下面程式後,B.bmp 顏色竟變成 64K 色 void __fastcall TForm1::Merge_btnClick(TObject *Sender) { Image3->Width=Image1->Width; Image3->Height=Image1->Height; Image3->Stretch=true; SetStretchBltMode(Image3->Canvas->Handle, STRETCH_HALFTONE); Image3->Canvas->CopyMode=cmSrcCopy; Image3->Canvas->CopyRect(Rect(0, 0, Image3->Width, Image3->Height), Image1->Canvas, Rect(0, 0, Image1->Width, Image1->Height)); Graphics::TBitmap *tmp1=new Graphics::TBitmap; tmp1->Assign(Image2->Picture->Graphic); tmp1->SaveToFile("B.bmp"); delete tmp1; } 請問是哪裡出錯了?我要出來也是 256 色的~~ 發表人 - hjlin 於 2003/07/17 16:19:57
taishyang
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-17 14:24:26 IP:140.135.xxx.xxx 未訂閱
hjlin您好:       請問您Image3上有圖片嗎??   我在Image3中先加入圖片,再依您的方式做測試   結果存下來的圖仍是256色的圖片 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
hjlin
一般會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-17 16:09:35 IP:61.56.xxx.xxx 未訂閱
我現在是從Image1 LOAD圖檔進來,然後利用image copy方式顯示在Image3上面。這樣就會有問題了~~ 我這程式的功能就是要從Image1 LOAD進來到Image3 .....
taishyang
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-17 16:20:02 IP:140.135.xxx.xxx 未訂閱
hjlin您好:
引言: 我現在是從Image1 LOAD圖檔進來,然後利用image copy方式顯示在Image3上面。這樣就會有問題了~~ 我這程式的功能就是要從Image1 LOAD進來到Image3 .....
那改成下面這樣可以嗎??
 
void __fastcall TForm1::Open_btnClick(TObject *Sender)
{
 Image1->Picture->LoadFromFile("A.bmp");
 Image1->Stretch=true;
}
//-------------------------------------------------------
void __fastcall TForm1::Merge_btnClick(TObject *Sender)
{
 Image3->Picture->Assign(Image1->Picture);
}
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
hjlin
一般會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-17 16:25:29 IP:61.56.xxx.xxx 未訂閱
阿泰: 如果使用你的方式,這樣我還可以merge兩張圖嗎(前景與背景)?這是我的目的...要如何用??謝謝~
taishyang
站務副站長


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-17 16:32:29 IP:140.135.xxx.xxx 未訂閱
hjlin您好:   我寫的方式只是將Image1的圖Copy到Image3(引言當中您要的)   您的問題有點奇怪(前後不一)   一開始是[有關BMP顏色顯示的問題] 256色=>64K 色的問題   再來是[Image1 LOAD圖檔進來,然後利用image copy方式顯示在Image3上面]   現在是[merge兩張圖]   我已經弄混了 > <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
hjlin
一般會員


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-17 16:43:14 IP:61.56.xxx.xxx 未訂閱
阿泰:不好意思,可能是我表達的不好,我再把我的問題說一次,我會盡量說清楚一點~哈! 我在Image1 LOAD一圖檔(256色),然後我是利用 Image3->Width=Image1->Width; Image3->Height=Image1->Height; SetStretchBltMode(Image3->Canvas->Handle, STRETCH_HALFTONE); Image3->Canvas->CopyMode=cmSrcCopy; Image3->Canvas->CopyRect(Rect(0, 0, Image3->Width, Image3->Height), Image1->Canvas, Rect(0, 0, Image1->Width, Image1->Height)); 上面指令將 Image1 的圖檔 copy 到 Image3 上面(我會這麼用是因為我後面要用這方法來Merge兩個圖檔),所以現在只需要幫我解決紅色部分,要如何修正,才不至於讓我的圖檔變成 64K 顏色...希望你看的懂~~
RaynorPao
版主


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-17 23:46:49 IP:61.221.xxx.xxx 未訂閱
引言: 請問一個有關BMP顏色顯示的問題 A.bmp 為 W:256 H:224 顏色:256色 void __fastcall TForm1::Open_btnClick(TObject *Sender) { Image1->Picture->LoadFromFile("A.bmp"); Image1->Stretch=true; } 但經過下面程式後,B.bmp 顏色竟變成 64K 色 void __fastcall TForm1::Merge_btnClick(TObject *Sender) { Image3->Width=Image1->Width; Image3->Height=Image1->Height; Image3->Stretch=true; SetStretchBltMode(Image3->Canvas->Handle, STRETCH_HALFTONE); Image3->Canvas->CopyMode=cmSrcCopy; Image3->Canvas->CopyRect(Rect(0, 0, Image3->Width, Image3->Height), Image1->Canvas, Rect(0, 0, Image1->Width, Image1->Height)); Graphics::TBitmap *tmp1=new Graphics::TBitmap; tmp1->Assign(Image2->Picture->Graphic); tmp1->SaveToFile("B.bmp"); delete tmp1; } 請問是哪裡出錯了?我要出來也是 256 色的~~
hjlin 你好:
(1)我的寫法跟你的是一樣的,但是~~我所得到的結果,卻不會像你的圖形失真
   那麼的嚴重
(2)我已經將執行的結果寄給你參考,先看看吧
(3)會變成 64K 的原因,是因為 VGA 設定的原因,你可以試試看更改 VGA 的色
   彩設定值,得到的結果又會不一樣
-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-11-25 9:57:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!