000
19.01.2005, 13:38 Uhr
~hans_der_gruene
Gast
|
Hallo!
Ich habe ein Programm, mit dem ich Bild aus einem Bildsensor auslese und in ein INT32 Array ablege. Nun will ich das Bild in einem Dialogfeld anzeigen. Das funktioniert auch, wenn die Farbtiefe des Bildschirms auf 32bit eingestellt ist. Wie kann ich das Bild anzeigen, wenn die Frabtiefe nur 16bit ist, ohne das Bild vorher zu speichern.
So habe ich mir das gedacht:
CBitmap pic; BITMAP test;
test.bmBits= m_bild.field;//in m_bild.field stehen die Pixel test.bmBitsPixel= 32; test.bmHeight= 1024; test.bmPlanes= 1; test.bmType= 0; test.bmWidth= 1280; test.bmWidthBytes= 5120;
pic.CreateBitmapIndirect(&test);
CWnd* wp = this; CDC *pDC = wp->GetDC(); CDC imageDC; imageDC.CreateCompatibleDC(pDC); imageDC.SelectObject( &pic);
pDC->BitBlt(0, 0, 1280, 1024, &imageDC, 0, 0, SRCCOPY);
imageDC.DeleteDC(); wp->ReleaseDC(pDC);
Ich hoffe es weiß jemand einen Rat. Vielen Dank Hans |