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

scan line index out of range要如何解決啊?

尚未結案
黑輪
中階會員


發表:135
回覆:188
積分:64
註冊:2004-01-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-11 12:32:37 IP:140.124.xxx.xxx 未訂閱
我用ptr=(Byte *)Bmp->ScanLine[i]; 發生了scan line index out of range的情形 為什麼會發生這種情形呢? 應該如何解決? 感謝您的幫忙哦~~
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-11 12:40:53 IP:203.73.xxx.xxx 未訂閱
引言: 我用ptr=(Byte *)Bmp->ScanLine[i]; 發生了scan line index out of range的情形 為什麼會發生這種情形呢? 應該如何解決? 感謝您的幫忙哦~~
黑輪 你好: 如果要用 ScanLine 的話,代表每一次會掃出一列的 pixel 資料,所以「i」的 數值範圍是不可以超過 Bmp 的高度 (Height),例如:假設這個 Bmp 的 Height 為 200 的話,「i」的值只能夠為 0~199,以下是 BCB Help 中的範例,順便貼 給你參考 (請自己養成查詢說明文件的好習慣) < class="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { Graphics::TBitmap *pBitmap = new Graphics::TBitmap(); // This example shows drawing directly to the Bitmap Byte *ptr; try { pBitmap->LoadFromFile("C:\\Program Files\\Common Files\\Borland Shared\\Images\\Splash\\256color\\factory.bmp"); for (int y = 0; y < pBitmap->Height; y++) { ptr = (Byte *)pBitmap->ScanLine[y]; for (int x = 0; x < pBitmap->Width; x++) ptr[x] = (Byte)y; } Canvas->Draw(0,0,pBitmap); } catch (...) { ShowMessage("Could not load or alter bitmap"); } delete pBitmap; } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
黑輪
中階會員


發表:135
回覆:188
積分:64
註冊:2004-01-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-13 14:55:19 IP:140.124.xxx.xxx 未訂閱
哦~原來如此~~ 難怪改了大小就可以了~ 我會去看一下說明文件的~ 感謝你哦
系統時間:2024-05-18 14:31:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!