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

請問這段程式是什麼意思

答題得分者是:malanlk
susman
一般會員


發表:7
回覆:4
積分:2
註冊:2008-03-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-03-23 21:34:35 IP:118.161.xxx.xxx 訂閱

[code cpp]
void __fastcall TForm1::OpneImage1Click(TObject *Sender)
{
if (!OpenPictureDialog1->Execute()) return;
FileName1 = OpenPictureDialog1->FileName;

Image1->Picture->LoadFromFile(FileName1);
Image_Height = Image1->Height;
Image_Width = Image1->Width;
GetBitmap();

}
//---------------------------------------------------------------------------
void __fastcall TForm1::GetBitmap(void)
{
Data = new int*[Image_Width];
Data_temp = new int*[Image_Width];
for(int i = 0; i < Image_Width; i )
{
Data[i] = new int[Image_Height];
Data_temp[i] = new int[Image_Height];
for(int j = 0; j < Image_Height; j )
Data[i][j] = Data_temp[i][j]= (Image1->Canvas->Pixels[i][j])&0xff;
}

}

[/code]
這是一個將讀入圖片的灰階存成矩陣的程式
其中GetBitmap 就是將輸入影像存成矩陣的副函式
可是在副程式中有一個Data[i][j] = Data_temp[i][j]= (Image1->Canvas->Pixels[i][j])&0xff;
請問那&0xff是什麼意思,是位移的意思嗎?

malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-03-24 01:53:14 IP:61.219.xxx.xxx 訂閱
Canvas->Pixels[i][j]) 的範圍是 -7FFFFFFF..7FFFFFFF,所以 Canvas->Pixels[i][j])&0xFF 就是將顏色限定在 00000000..000000FF 之間的灰階
susman
一般會員


發表:7
回覆:4
積分:2
註冊:2008-03-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-03-24 12:02:35 IP:140.115.xxx.xxx 訂閱
請問是將灰階值定義在0~255的意思嗎^^"
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-03-24 14:58:40 IP:218.211.xxx.xxx 訂閱
看起來是這樣.. 因為Delphi 中 TColor= $00000000-$000000FF 是紅色的深淺變化
系統時間:2024-04-18 17:29:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!