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

bit plane

尚未結案
kuba928
一般會員


發表:2
回覆:1
積分:0
註冊:2009-10-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-12-13 12:57:02 IP:140.127.xxx.xxx 訂閱
請問為何我的bit plane跑出來沒東西..   THX



void TChild::bitplane(){

Graphics::TBitmap *AttendBitmap;
AttendBitmap=new Graphics::TBitmap();
AttendBitmap->PixelFormat=pf24bit;
AttendBitmap->Width=OriginalBitmap->Width;
AttendBitmap->Height=OriginalBitmap->Height;

r1 = new int*[AttendBitmap->Width];
g1 = new int*[AttendBitmap->Width];
b1 = new int*[AttendBitmap->Width];
y1 = new int*[AttendBitmap->Width];
for(i=0; iWidth; i ) {
r1[i] = new int[AttendBitmap->Height];
g1[i] = new int[AttendBitmap->Height];
b1[i] = new int[AttendBitmap->Height];
y1[i] = new int[AttendBitmap->Height];
}
for(j=0; jHeight; j )
for(i=0; iWidth; i ){
switch(Form2->ScrollBar1->Position)
{
case 0:
r[i][j] = r[i][j]%2*255;
g[i][j] = g[i][j]%2*255;
b[i][j] = b[i][j]%2*255;
break;
case 1:
r[i][j] = ((r[i][j]/2)%2);
g[i][j] = ((g[i][j]/2)%2);
b[i][j] = ((b[i][j]/2)%2);
break;
case 2:
r[i][j] = ((r[i][j]/4)%2);
g[i][j] = ((g[i][j]/4)%2);
b[i][j] = ((b[i][j]/4)%2);
break;
case 3:

r[i][j] = ((r[i][j]/8)%2);
g[i][j] = ((g[i][j]/8)%2);
b[i][j] = ((b[i][j]/8)%2);
break;
case 4:
r[i][j] = ((r[i][j]/16)%2);
g[i][j] = ((g[i][j]/16)%2);
b[i][j] = ((b[i][j]/16)%2);
break;
case 5:
r[i][j] = ((r[i][j]/32)%2);
g[i][j] = ((g[i][j]/32)%2);
b[i][j] = ((b[i][j]/32)%2);
break;
case 6:
r[i][j] = ((r[i][j]/64)%2);
g[i][j] = ((g[i][j]/64)%2);
b[i][j] = ((b[i][j]/64)%2);
break;
case 7:
r[i][j] = ((r[i][j]/128)%2);
g[i][j] = ((g[i][j]/128)%2);
b[i][j] = ((b[i][j]/128)%2);
break;
}
}



Image1->Picture->Assign(AttendBitmap);
OriginalBitmap->Assign(AttendBitmap);
delete AttendBitmap;


delete r1;
delete g1;
delete b1;

}
istillloving
高階會員


發表:33
回覆:182
積分:183
註冊:2008-10-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-12-13 16:30:13 IP:140.127.xxx.xxx 訂閱
我問一個非常蠢的問題....

AttendBitmap 你有載入圖檔嗎?
------
恩...
kuba928
一般會員


發表:2
回覆:1
積分:0
註冊:2009-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-12-13 16:39:48 IP:140.127.xxx.xxx 訂閱
友阿   只是不之問題在哪
istillloving
高階會員


發表:33
回覆:182
積分:183
註冊:2008-10-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-12-13 19:31:13 IP:220.129.xxx.xxx 訂閱
Graphics::TBitmap *AttendBitmap;
AttendBitmap=new Graphics::TBitmap();

不是才剛new出來而已......

根本沒給值阿

rgb當然也不會有值阿.....

我想你是想用手調的給顏色

但是最起碼你也要把AttendBitmap歸零一下

不然剛new出來的記憶體你就直接用 這樣會出錯的

而你所謂的沒有東西跑出來是指全部都黑色的嗎??

因為我看你的程式全部都是求/2的餘數呢

而且二維陣列也不是這樣刪除的....

delete r1;
delete g1;
delete b1;

------
恩...
編輯記錄
istillloving 重新編輯於 2009-12-14 11:04:39, 註解 無‧
istillloving 重新編輯於 2009-12-14 11:07:48, 註解 無‧
istillloving 重新編輯於 2009-12-14 11:10:21, 註解 無‧
istillloving 重新編輯於 2009-12-14 11:11:40, 註解 無‧
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-12-14 10:34:26 IP:61.219.xxx.xxx 訂閱
你的r1,g1,b1,y1都new完2維陣列
沒有給值阿?
系統時間:2024-04-26 16:22:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!