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?


Anmelden zum Antworten