利用CopyRect擷取部分影像卻無法顯像 |
缺席
|
CWKid
一般會員 ![]() ![]() 發表:6 回覆:10 積分:3 註冊:2007-07-29 發送簡訊給我 |
小弟利用CopyRect擷取Image1上的某個區塊顯像在Image2上
不過為什麼傑取出來的區域無法顯像在Image2上呢 以下是小弟在做這件測試時的code [code cpp] TRect Dest, Source; CapImg1 = new Graphics::TBitmap; ReSizeImg = new Graphics::TBitmap; CapImg1->LoadFromFile("未命名.bmp"); Image1->Picture->Bitmap->Assign(CapImg1); Dest = Rect(0, 0, 10, 10); Source = Rect(10,10,20,20); ReSizeImg->Canvas->CopyRect(Dest, CapImg1->Canvas, Source); Image2->Picture->Bitmap->Assign(ReSizeImg); [/code] 小弟也是過加上讓他重劃 mage2->Refresh(); 可是還是無法顯像 不知是哪出錯了呢? 請版上的高手大大指導 |
CWKid
一般會員 ![]() ![]() 發表:6 回覆:10 積分:3 註冊:2007-07-29 發送簡訊給我 |
小弟自問自解
[code cpp] TRect Dest, Source; CapImg1 = new Graphics::TBitmap; ReSizeImg = new Graphics::TBitmap; CapImg1->LoadFromFile("未命名.bmp"); Image1->Picture->Bitmap->Assign(CapImg1); Dest = Rect(0, 0, 10, 10); Source = Rect(10,10,20,20); ReSizeImg->Canvas->CopyRect(Dest, CapImg1->Canvas, Source); Image2->Picture->Bitmap->Assign(ReSizeImg);[/code] 在上面的程式碼裡 有new 一個新的ReSizeImg 但在後面要塞影像進去之前 卻沒有告知ReSizeImg 的大小 所以才導致這個結果 將上述程式碼改成下面即可 [code cpp] TRect Dest, Source; CapImg1 = new Graphics::TBitmap; ReSizeImg = new Graphics::TBitmap; CapImg1->LoadFromFile("未命名.bmp"); Image1->Picture->Bitmap->Assign(CapImg1); Dest = Rect(0, 0, 10, 10); Source = Rect(10,10,20,20); //加上新影像大小即可 ReSizeImg->Width = 10; ReSizeImg->Height = 10; ReSizeImg->Canvas->CopyRect(Dest, CapImg1->Canvas, Source); Image2->Canvas->FillRect(Rect(0, 0, 10, 10)); Image2->Picture->Bitmap->Assign(ReSizeImg);[/code]
編輯記錄
CWKid 重新編輯於 2009-04-05 15:45:42, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |