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

請教有關ScanLine的問題

答題得分者是:brook
danielj
初階會員


發表:65
回覆:135
積分:40
註冊:2003-06-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-18 15:12:40 IP:61.220.xxx.xxx 未訂閱
小弟已經知道bitmap圖中之RGB內容,想用最快的方式畫出來,好像聽說用ScanLine的方式是最快的,但是一直都會出錯,能否請大家幫忙看一下為什麼執行時會出現"out of range"的錯誤呢? 另外,用Assign的方式是不是也可以?但是該如何將rgb內容處理成可以用"Assign"的呢? 先謝謝大家啦!    以下是我測試的程式碼(我想在空白的Image1上顯示出全灰的圖):  
 void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Byte *ptr;
    for (int i=0;iClientHeight;i  )
    {
        ptr =(Byte *) Image1->Picture->Bitmap->ScanLine[i];
        for (int x=0;xClientWidth*3;x =3)
        {
            ptr[x]=128;
            ptr[x 1]=128;
            ptr[x 2]=128;
        }
    }
}
brook
資深會員


發表:57
回覆:323
積分:371
註冊:2002-07-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-18 15:28:56 IP:218.160.xxx.xxx 未訂閱
試試前面加: Image1->Picture->Bitmap->PixelFormat = pf24bit; 發表人 - brook 於 2003/08/18 15:30:45
danielj
初階會員


發表:65
回覆:135
積分:40
註冊:2003-06-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-18 16:21:23 IP:61.220.xxx.xxx 未訂閱
謝謝brook大哥的回答! 但是小弟還是會出現"Scan Line out of Image"的錯誤! 在y=0時就出現錯誤了… 還請眾家高手幫幫忙解一下圍…
brook
資深會員


發表:57
回覆:323
積分:371
註冊:2002-07-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-18 16:27:11 IP:218.160.xxx.xxx 未訂閱
可能你沒有先load一個image進去,要不然先 Image1->Picture->Bitmap = GetFormImage();
jiaching
一般會員


發表:21
回覆:21
積分:8
註冊:2003-07-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-18 16:59:14 IP:211.76.xxx.xxx 未訂閱
danielj 你好~~~ 我跑過你的程式了    請加入一個對話盒~~~   並加入以下的程式碼 
if(OpenPictureDialog1->Execute())
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
因為你的Image物件沒有放圖片
danielj
初階會員


發表:65
回覆:135
積分:40
註冊:2003-06-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-18 17:30:24 IP:61.220.xxx.xxx 未訂閱
多謝brook大大及jiaching的回答! 不過由於brook大大先回應,且小弟正好需要那樣的寫法,所以向jiaching說聲抱歉囉…
系統時間:2024-04-29 16:21:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!