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

圖檔高度為2的某次方時出現錯誤

尚未結案
woops
一般會員


發表:2
回覆:3
積分:1
註冊:2006-08-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-02 11:56:18 IP:218.167.xxx.xxx 訂閱
此段程式是做浮雕的功能 利用減掉右邊像素來完成 可是在測試時發現 300 X 512 以及 300 X 768 類似此大小時 發現只要是高度是 "2的某次方倍" 在執行時 就會錯誤 寬度並不受影響 請問是什麼原因???    <textarea class="cpp" rows="10" cols="60" name="code"> Graphics::TBitmap *TheBitmap=new Graphics::TBitmap(); TheBitmap->PixelFormat=pf24bit; TheBitmap->Assign(Image1->Picture); Byte *ptr; for(int y=0;yHeight;y ) { ptr=(Byte *)TheBitmap->ScanLine[y]; for(int x=0;xWidth*3;x =3) { ptr[x]=ptr[x]-ptr[x 3] 128; ptr[x 1]=ptr[x 1]-ptr[x 4] 128; //出現錯誤 ptr[x 2]=ptr[x 2]-ptr[x 5] 128; } } Image1->Picture->Assign(TheBitmap); </textarea>
ALTIS
初階會員


發表:4
回覆:26
積分:31
註冊:2005-04-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-02 13:40:15 IP:210.201.xxx.xxx 訂閱
//減右邊的值 , 要注意不要超出範圍
// x = 0; x < pBitmap->Width -1 ; x

for (int y = 0; y < pBitmap->Height; y ){
ptr3 = (Byte *)pBitmap->ScanLine[y];
for (int x = 0; x < pBitmap->Width -1 ; x ){
ptr3[x*3] -= (ptr3[(x 1)*3] -128);
ptr3[x*3 1] -= (ptr3[(x 1)*3 1] -128);
ptr3[x*3 2] -= (ptr3[(x 1)*3 2] -128);
}
}
------
城市讓人迷惘 我在湖岸看見希望
妳的眼神是一道光芒 開啟我心中的收藏
woops
一般會員


發表:2
回覆:3
積分:1
註冊:2006-08-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-02 17:21:45 IP:218.167.xxx.xxx 訂閱
原來是錯在這種小地方阿
真是抱歉

另外可以再請問
關於最邊邊有一條會沒做到
要怎麼處理呢?

ALTIS
初階會員


發表:4
回覆:26
積分:31
註冊:2005-04-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-03 09:09:30 IP:210.201.xxx.xxx 訂閱
最邊邊的1 Pixel 其實並看不出來
如果是我就直接減左邊或COPY左邊的資料
畢竟1個Pixel對觀感的知覺微乎其微...
------
城市讓人迷惘 我在湖岸看見希望
妳的眼神是一道光芒 開啟我心中的收藏
woops
一般會員


發表:2
回覆:3
積分:1
註冊:2006-08-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-05-03 19:53:38 IP:218.167.xxx.xxx 訂閱
終於做出完整的效果了
感謝你

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