S
Danke Knuddlbaer,
Leider hat das nicht funktioniert, da im Stream kein gültiges bildformat war. Ich erhalte die Bilddaten wirklich roh... sprich ein Byte ist ein Grauwert und der erste Wert in meinem Byte ist auch gleich das erste Pixel. Scheinbar kommt damit das Bitmap.Fromstream nicht zurrecht.
Bin dann aber auf eine Lösung gekommen, die zwar nicht schön ist, aber sie funzt...
int alloc = getAllocSize(Handle);
unsigned char * pchr_Buffer = new unsigned char[alloc];
int_retVal = getContinuousImage(Handle, pchr_Buffer);
tb_Notes->Text = String::Concat(tb_Notes->Text,"Grab: ", int_retVal.ToString());
if (int_retVal == 0){
//paint the image to the picture box
pb_Image->Size = Drawing::Size(getWidth(Handle), getHeight(Handle));
unsigned char * pchr_Buffer2 = new unsigned char[alloc*3];
for (int int_Counter = 0; int_Counter < alloc; int_Counter++){
pchr_Buffer2[int_Counter*3] = pchr_Buffer[int_Counter];
pchr_Buffer2[int_Counter*3+1] = pchr_Buffer[int_Counter];
pchr_Buffer2[int_Counter*3+2] = pchr_Buffer[int_Counter];
}
Bitmap * btm = new Bitmap( getWidth(Handle), getHeight(Handle),
getWidth(Handle) * 3, // stride
System::Drawing::Imaging::PixelFormat::Format24bppRgb,
pchr_Buffer2);
pb_Image->Image = btm;
pb_Image->Refresh();
Da es unter Pixelformat kein 8 Bit grauwert gibs (sehr seltsam) muss ich halt den kleinen umweg über 24 bit rgb gehen...
Grüsse, Streen