如何將記憶體中的資料, 抓出來放到 Image 的 Picture 裡 |
答題得分者是:taishyang
|
licheer
一般會員 發表:23 回覆:20 積分:8 註冊:2007-08-19 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
若您的image[]是不包含頭檔的RAW data資料
您必須一點一點的將像素資料填到Image中Image->Canvas->Pixels[x][y] 若要加快速度,可以用ScanLine,站上都有範例程式可以參考 ===================引 用 licheer 文 章=================== 把檔案顯示出來 是用 Image->Picture->LoadFromFile(); 如今我有一筆影像資料, 存放在記憶體中 memcpy ( ( image[m], pFrame, 100000); 那我要如何把 image[m] 抓出來放進 Picture 中顯示呢? 謝謝 |
licheer
一般會員 發表:23 回覆:20 積分:8 註冊:2007-08-19 發送簡訊給我 |
翻了許多站上的討論
這篇跟我想做的很相近 unsigned char轉成Tbitmap http://delphi.ktop.com.tw/board.php?cid=168&fid=912&tid=90804 討論區裡的範例, 大多也是這樣寫 但我仍然看不太懂 ScanLine 的用法 for loop 是把像素資料填進去 ScanLine 嗎? 然後再用 Image->Canvas->Draw 把影像畫出來? 可是這裡面看不到把記憶體內的資料讀出來的控制呀~~ [code cpp] Graphics::TBitmap *pBitmap = new Graphics::TBitmap(); pBitmap->PixelFormat=pf8bit; pBitmap->Width=W; pBitmap->Height=H; Byte *ptr1; k=0; for(int i = 0; i < H; i ) { for(int j = 0; j < W; j ) { ptr1=(Byte*) pBitmap->ScanLine[H]; ptr1[i]=pBuf1[k =i]; } } Image->Canvas->Draw(0,0,pBitmap); [/code] |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
可是這裡面看不到把記憶體內的資料讀出來的控制呀~~
---------------------------------------------- 你一開始說到:[如今我有一筆影像資料, 存放在記憶體中那我要如何把 image[m] 抓出來放進 Picture 中顯示呢] ... ptr1=(Byte*) pBitmap->ScanLine[H]; //ptr1指向影像的每一列開頭的位置 ptr1[i] = pBuf1[k =i]; //pBuf1為記憶體的資料,現在把他assign給*ptr1 .... //當for loop結束表示像素已經填完 Image->Canvas->Draw(0,0,pBitmap); //將影像(pBitmap)顯示到Image中 |
licheer
一般會員 發表:23 回覆:20 積分:8 註冊:2007-08-19 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |