請問關於圖片的部分複製 |
尚未結案
|
xdio2
一般會員 發表:60 回覆:29 積分:17 註冊:2004-07-23 發送簡訊給我 |
請問各位大大
小弟今天想複製在Image1圖部分區域到Image2去
可是複製過後,再Image2中不屬於複製圖片的區域都變成白色了
(1)
請問若是我不希望Image2未被利用的地方變成白色
而是空的狀況....
要怎麼做呢? (2)
再另外請問一下
要是我想複製一塊以上的區域
得怎麼做呢?
Image2->Canvas->CopyRect(rect1,Bmp->Canvas,rect2);
若是我之後再接著
Image2->Canvas->CopyRect(rect3,Bmp->Canvas,rect4);
把rect3跟rect4都設定新的值
結果卻還是只會做第一個
Image2->Canvas->CopyRect(rect1,Bmp->Canvas,rect2);
該怎麼解決呢?
請大大為我解惑一下
感謝~ 下面是小弟原本的程式碼
Graphics::TBitmap *Bmp = new Graphics::TBitmap(); Bmp->Assign(Image1->Picture->Bitmap); TRect rect1,rect2; rect1=Rect(0,138,450,30); rect2=Rect(0,138,450,30); Image2->Canvas->CopyRect(rect1,Bmp->Canvas,rect2);發表人 - xdio2 於 2004/10/28 15:41:09 |
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
你好: 試試這樣的寫法,看結果對不對。
Graphics::TBitmap *Bmp = new Graphics::TBitmap(); Graphics::TBitmap *Bmp1 = new Graphics::TBitmap(); Bmp->Assign(Image1->Picture->Bitmap); TRect rect1,rect2; rect1=Rect(20,20,100,100); rect2=Rect(100,100,120,120); Bmp1->Transparent = true; Bmp1->Transparent = true; Image2->Transparent = true; Bmp1->Width = Image1->Width; Bmp1->Height = Image1->Width; Image2->Width = Image1->Width; Image2->Height = Image1->Height; Bmp1->Canvas->CopyRect(rect1,Bmp->Canvas,rect1); Bmp1->Canvas->CopyRect(rect2,Bmp->Canvas,rect2); Image2->Picture->Assign(Bmp1); |
xdio2
一般會員 發表:60 回覆:29 積分:17 註冊:2004-07-23 發送簡訊給我 |
引言: 你好: 試試這樣的寫法,看結果對不對。你好喔! 謝謝您的回覆 (1) 確實可以辦到複製兩塊區域, 可是似乎底色還是會變成白色的哩.... (2) 再另外請問您,把 Transparent改成true屬性 是說把透明打開嗎? 可是似乎沒有出現效果 請問透明打開後圖會變成怎樣嗎? 勞煩您為小弟解惑一下兩個問題 謝謝Graphics::TBitmap *Bmp = new Graphics::TBitmap(); Graphics::TBitmap *Bmp1 = new Graphics::TBitmap(); Bmp->Assign(Image1->Picture->Bitmap); TRect rect1,rect2; rect1=Rect(20,20,100,100); rect2=Rect(100,100,120,120); Bmp1->Transparent = true; Bmp1->Transparent = true; Image2->Transparent = true; Bmp1->Width = Image1->Width; Bmp1->Height = Image1->Width; Image2->Width = Image1->Width; Image2->Height = Image1->Height; Bmp1->Canvas->CopyRect(rect1,Bmp->Canvas,rect1); Bmp1->Canvas->CopyRect(rect2,Bmp->Canvas,rect2); Image2->Picture->Assign(Bmp1); |
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
你好: 我在下面的程式中加上透明的設定,因為在我的電腦都有成功,沒有白色的部分
你再試試看。
Graphics::TBitmap *Bmp = new Graphics::TBitmap(); Graphics::TBitmap *Bmp1 = new Graphics::TBitmap(); Bmp->Assign(Image1->Picture->Bitmap); TRect rect1,rect2; rect1=Rect(20,20,100,100); rect2=Rect(100,100,120,120); Bmp1->Transparent = true; // 啟動透明的功能 Bmp1->Transparent = true; // 設定透明的顏色,初始是整張白色,所以任取一點(1,1) Bmp1->TransparentColor = Bmp1->Canvas->Pixels[1][1]; // 修正模式 Bmp1->TransparentMode = tmAuto; Image2->Transparent = true; Bmp1->Width = Image1->Width; Bmp1->Height = Image1->Width; Image2->Width = Image1->Width; Image2->Height = Image1->Height; Bmp1->Canvas->CopyRect(rect1,Bmp->Canvas,rect1); Bmp1->Canvas->CopyRect(rect2,Bmp->Canvas,rect2); Image2->Picture->Assign(Bmp1); |
xdio2
一般會員 發表:60 回覆:29 積分:17 註冊:2004-07-23 發送簡訊給我 |
感謝你的熱心回覆喔
小弟對BCB還是不太熟
想再請問您幾個問題....
Bmp1->Transparent = true;
// 啟動透明的功能
Bmp1->Transparent = true;
這邊您寫了兩次....這是筆誤嗎?
// 設定透明的顏色,初始是整張白色,所以任取一點(1,1)
Bmp1->TransparentColor = Bmp1->Canvas->Pixels[1][1];
請問您把透明顏色指定成(1,1)這點的顏色
是爲了....??
// 修正模式
Bmp1->TransparentMode = tmAuto;
這邊是說你把透明顏色的模式變成Auto嗎?
用意是?? 以上幾個問題
勞煩您了
感謝
|
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
引言: Bmp1->Transparent = true; // 啟動透明的功能 Bmp1->Transparent = true; 這邊您寫了兩次....這是筆誤嗎? 是筆誤,做一次就可以了。 // 設定透明的顏色,初始是整張白色,所以任取一點(1,1) Bmp1->TransparentColor = Bmp1->Canvas->Pixels[1][1]; 請問您把透明顏色指定成(1,1)這點的顏色 是爲了....?? 因為單純設定Transparent還不能百分之百的透明,還是會出現白底 所以在還沒讀入圖片前,先指定(1,1)這個點的顏色都設為透明底色, 這樣底色才會真正透明。 不過,這樣的作法還是會有副作用,原因是如果讀入的圖片也有和 (1,1)的顏色一樣時,這點也會被設為透明,顏色就和原來的不一樣。 // 修正模式 Bmp1->TransparentMode = tmAuto; 這邊是說你把透明顏色的模式變成Auto嗎? 用意是?? 抱歉,這個command好像有點多餘,原因為是有設定TransparentColor 應該就不用再設定TransparentMode,至於用意我也看不大懂,應該是指定 TransparentColor的方法是否為自動或手動。你可以查一下F1When TransparentMode is set to tmAuto (the default), the TransparentColor property returns the color of the bottom- leftmost pixel of the bitmap image. When TransparentMode is set to tmFixed, the TransparentColor property refers to the color stored in the bitmap object. |
xdio2
一般會員 發表:60 回覆:29 積分:17 註冊:2004-07-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |