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

請問它是怎麼跑的?

答題得分者是:taishyang
encoref70036
一般會員


發表:29
回覆:47
積分:15
註冊:2011-05-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-07-24 00:24:39 IP:111.253.xxx.xxx 訂閱
這是程式碼
int index;
float gray;
Byte *ptr;
int w = Image1->Picture->Bitmap->Width;
int h = Image1->Picture->Bitmap->Height;
Image1->Picture->Bitmap->PixelFormat = pf24bit;
for (int row=0; row {
ptr = (Byte *) Image1->Picture->Bitmap->ScanLine[row];
index=0;
for (int col=0; col {
gray = (Byte) (0.30*ptr[index 2] 0.59*ptr[index 1] 0.11*ptr[index]);
ptr[index]=ptr[index 1]=ptr[index 2] = gray;
index = 3;
}
}
請問粗體字那邊是怎麼跑的 ptr有把值傳回給圖片嗎? 但我怎麼看不出來? 圖片可以變灰階 但我不知道他是怎麼跑的
下面有附上程式
附加檔案:4e2af5c7a3059_gray.rar
編輯記錄
encoref70036 重新編輯於 2011-07-23 10:24:55, 註解 無‧
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-07-25 19:50:59 IP:122.116.xxx.xxx 訂閱
簡單來說ptr指標指向影像第row列的像素的第一個位址

當指標內容改變,影像的像素內容也就跟著改變



P.S:
ptr[index 1] ---> Green


encoref70036
一般會員


發表:29
回覆:47
積分:15
註冊:2011-05-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-07-25 20:35:05 IP:61.230.xxx.xxx 訂閱
感謝您
系統時間:2024-12-04 1:45:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!