全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1449
推到 Plurk!
推到 Facebook!

如何將eVision的影像傳至BCB的TImage元件上顯示?

尚未結案
po_tacc
一般會員


發表:5
回覆:5
積分:7
註冊:2010-07-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-03-15 10:24:07 IP:61.222.xxx.xxx 訂閱

各位好,以下程式我是參考anumis的Euresys EBW8Image RAW Queue所寫的,
但目前我發生一些問題,所以想請各位前輩是否可以幫忙解疑惑,
當讀入不同Size的影像時,BCB的TImage顯示不正確,如附件中的Test1 & Test2的圖像
在BCB的TImage產生不一樣的顯示(如附件中的Test1的圖檔),
但如果改變pms->Position = (i)* (m_pBitmap->Width 16);
BCB的TImage顯示就會變的正常,
我在想是不是Memory資料排列的問題呢?
但是不知道該如何下手,
麻煩各位大大是否可以幫我解疑惑呢?
感謝!!

[code cpp]
PByteArray *pRawPtr = new PByteArray();
TMemoryStream* pms = new TMemoryStream() ;
Graphics::TBitmap *m_pBitmap;

EBW8_ShowImage.Load(BmpFileName.c_str()); //這是eVision Image Buffer
pms->Position = 0;
pms->Size = 0;
*pRawPtr = PByteArray(EBW8_ShowImage.GetImagePtr(0,0));

//請問pms->Write這一段是否已將EBW8_ShowImage資料寫入memory了呢?
pms->Write(pRawPtr[0],EBW8_ShowImage.GetWidth()*EBW8_ShowImage.GetHeight());

// 建立灰階調色盤
LogPal GrayPalette;
//設定版本資訊
GrayPalette.lpal.palVersion = 0x300;
//設定調色盤內的色彩數目
GrayPalette.lpal.palNumEntries = 256;
for(long Index = 0; Index < 256; Index )
{
GrayPalette.lpal.palPalEntry[Index].peRed = (BYTE)Index;
GrayPalette.lpal.palPalEntry[Index].peGreen = (BYTE)Index;
GrayPalette.lpal.palPalEntry[Index].peBlue = (BYTE)Index;
GrayPalette.lpal.palPalEntry[Index].peFlags = PC_RESERVED;
}
m_pBitmap->PixelFormat = pf8bit;
m_pBitmap->Palette = CreatePalette(&GrayPalette.lpal);
m_pBitmap->Height = EBW8_ShowImage.GetHeight();
m_pBitmap->Width = EBW8_ShowImage.GetWidth();

//請問為何不能直接使用LoadFromStream呢?
m_pBitmap->LoadFromStream(pms);

for(int i =0 ; i<=m_pBitmap->Height-1 ; i ){

//問題目前出在這裡
pms->Position = (i)* (m_pBitmap->Width); //目前位置

*pRawPtr =(PByteArray )m_pBitmap->ScanLine[i] ;
pms->Read(pRawPtr[0],m_pBitmap->Width);
}

[/code]

po_tacc
一般會員


發表:5
回覆:5
積分:7
註冊:2010-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-03-24 14:09:47 IP:59.120.xxx.xxx 訂閱
目前知道 *pRawPtr = PByteArray(EBW8_ShowImage.GetImagePtr(0,0));
所擷取到的圖像會不定值得多出空白位元,
所以目前只能計算一列中有多少各"0",
得知需要跳幾各位元,這樣出來的圖就可以正常了.

只是有人知道為何eVision的GetImagePtr會有這樣的情況呢?
謝謝!!
系統時間:2017-10-19 20:38:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!