Problem mit Bitmap
-
ich hab ein problem mit einer Bitmap! bekomme von einer firewire camera ein RGBA 32 Image! will dieses als graustufenbild anzeigen! CStatic m_Img1; unsigned char *ActImage; unsigned char *GrayMap; CBitmap Bitmap1; ActImage = new unsigned char[FireCapture->grabBufferSize]; GrayMap = new unsigned char[FireCapture->grabBufferSize]; memcpy(ActImage,FireCapture->FlippedBuffer,FireCapture->grabBufferSize); RGBA2Gray(ActImage, GrayMap, FireCapture->grabBufferSize); Bitmap1.CreateBitmap(FireCapture->pVih->bmiHeader.biWidth, FireCapture->pVih->bmiHeader.biHeight, 1,8,GrayMap); m_Img1.SetBitmap(Bitmap1); void RGBA2Gray(unsigned char *Img1, unsigned char *Img2, unsigned int ByteSize) { for(int i = 0; i<ByteSize/4; i++) { Img2[i] = ((char)Img1[4*i] + (char)Img1[4*i+1] + (char)Img1[4*i+2]) / 3; } }die umrechnung von RGBA in Gray müsste stimmen! das bild ist dann ja nur mehr 8 bit gross! aber es lässt sich einfach nicht mehr darstellen, seh gar nichts;/
jemand ne idee? ist CBitmap zu blöd und will immer 32 bit haben?
cu
-
was hab ich vergessen? oder geht das nicht?