Bitmap->LoadFromStream |
答題得分者是:taishyang
|
chi30
一般會員 發表:5 回覆:17 積分:4 註冊:2005-01-20 發送簡訊給我 |
各位先進好,
小弟要用Image1->Picture->Bitmap來秀一個處理過的unsigned char* 的 image buffer. 以下是我用的方法. dbuf 是 unsigned char 的buf 其大小為height*width TMemoryStream *tmpStr = new TMemoryStream();
tmpStr->Read(dbuf,height*width);
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
tmpStr->Position = 0;
pBitmap->LoadFromStream((TStream*)tmpStr);
Image1->Canvas->Draw(0,0,pBitmap); 我執行上面的程式後, Image1 會變成整張白色的. 但是完全不會秀出圖檔. 請問各位先進 上面的程式碼到底那裡錯了??? YoHo~~~
------
YoHo~~~ |
chunglin
一般會員 發表:8 回覆:8 積分:3 註冊:2005-02-03 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
chi30
一般會員 發表:5 回覆:17 積分:4 註冊:2005-01-20 發送簡訊給我 |
謝謝兩位的回答. 我把tmpStr->Read 改成 tmpStr->Write.
也設定了pBitmap的大小 . 不過顯示出來的檔還是一片空白. 不知問題在那? ps: 其實我是可以用TBitmap::Scanline的方式一條一條寫到bitmap裡. 不過想用用看TMemoryStream 的方式看看, 因為這TMemoryStream一次讀到Bitmap裡, 我覺得應該會比較快. 所以想試試. 發表人 - chi30 於 2005/03/29 13:26:38
------
YoHo~~~ |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
您好:
我用下面的程式碼對一張24Bbit影像做灰階化是沒有問題的
TMemoryStream *msSrc = new TMemoryStream(); msSrc->LoadFromFile("test.bmp"); const int BmpHeadLen = 54; Byte BmpHead[BmpHeadLen]={0}; Byte *BmpData = new Byte[msSrc->Size-BmpHeadLen]; msSrc->Read(BmpHead, BmpHeadLen); msSrc->Position = BmpHeadLen; msSrc->Read(BmpData, msSrc->Size-BmpHeadLen); //msSrc->SaveToFile("Src.dat"); for (int i=0 ;i順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> |
chi30
一般會員 發表:5 回覆:17 積分:4 註冊:2005-01-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |