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

利用CopyRect擷取部分影像卻無法顯像

缺席
CWKid
一般會員


發表:6
回覆:10
積分:3
註冊:2007-07-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-04-05 14:10:55 IP:123.193.xxx.xxx 訂閱
小弟利用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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-04-05 15:45:04 IP:123.193.xxx.xxx 訂閱
小弟自問自解

[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, 註解 無‧
系統時間:2024-04-25 17:42:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!