scan line index out of range要如何解決啊? |
尚未結案
|
黑輪
中階會員 發表:135 回覆:188 積分:64 註冊:2004-01-29 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我用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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |