請問要如何將記憶體中的一塊影像資料建立成bitmap元件 |
答題得分者是:taishyang
|
chang1981
一般會員 發表:31 回覆:28 積分:11 註冊:2008-09-18 發送簡訊給我 |
各位前輩好 小弟最近在利用某家廠商的影像擷取卡
搭配他們提供的BCB元件 來擷取影像供我自己的程式處理 但是該廠所提供的免費元件並沒有辦法直接讀出擷取到影像的bitmap 而是只能回傳一個記憶體裡面的起始位置,以及該張影像的寬高 但我在BCB下一切的影像處理函式幾乎都要從bitmap開始 因此想在這邊請問 如果今天 我只有 1.一張影像在記憶體中的啟始位置 2.影像格式(ex: 24bit 灰階) 3.影像寬高 有沒有辦法用這些資料建立一個bitmap元件 可以秀在image上 也可以拿來處理 小弟曾嘗試寫這樣的程式來嘗試 [code cpp] BYTE* pPhyImageAddr = (BYTE*)AxAltair1->GetImagePtr(SurfaceHandle,0,0);//利用該元件的函式取得資料指標 int height = AxAltair1->imageheight;//取得影像高 int width = AxAltair1->imagewidth;//取得影像寬 Graphics::TBitmap *tool_Bitmap;//用來存影像的 bitmap tool_Bitmap = new Graphics::TBitmap; BYTE* ptr ; for(int j = 0 ; j < height ; j ) { ptr = tool_Bitmap->ScanLine[j]; for(int i = 0 ; i < width*3 ; i )//24bit圖形格式所以*3 { ptr[i]=pPhyImageAddr; pPhyImageAddr ;//指向下一個BYTE資料 } } Image3->Picture->Bitmap->Assign(tool_Bitmap); Image3->Refresh(); [/code] 這是我自己想像的方法 但是寫下去以後 最後image3根本甚麼都沒秀出來 不過我檢查tool_Bitmap裡面的值的確是有被assign到 因此想請問板上前輩高手 如果只有上述條件 我要如何將記憶體影像重建成buitmap元件呢? 感謝!!! |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
chang1981
一般會員 發表:31 回覆:28 積分:11 註冊:2008-09-18 發送簡訊給我 |
的確是因為忘了設圖形格式造成圖秀不出來
,感謝站長的指導 謝謝!!! 問題已解決! 以下為正確可用的程式 或許有人會需要參考! 謝謝!! [code cpp] BYTE* pPhyImageAddr = (BYTE*)AxAltair1->GetImagePtr(SurfaceHandle,0,0);//利用該元件的函式取得資料指標 int height = AxAltair1->ImageHeight;//取得影像高 int width = AxAltair1->ImageWidth;//取得影像寬 Graphics::TBitmap *tool_Bitmap;//用來存影像的 bitmap tool_Bitmap = new Graphics::TBitmap; tool_Bitmap->Width= width; tool_Bitmap->Height = height; tool_Bitmap->PixelFormat = pf24bit; BYTE* ptr ; for(int j = 0 ; j < height ; j ) { ptr = (BYTE*)tool_Bitmap->ScanLine[j]; for(int i = 0 ; i < width*3 ; i )//24bit圖形格式所以*3 { ptr[i]=*pPhyImageAddr; pPhyImageAddr ;//指向下一個BYTE資料 } } Image3->Picture->Bitmap->Assign(tool_Bitmap); Image3->Refresh(); [/code] |
friendlly
高階會員 發表:22 回覆:144 積分:103 註冊:2003-04-08 發送簡訊給我 |
|
chang1981
一般會員 發表:31 回覆:28 積分:11 註冊:2008-09-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |