Bildinformationen aus CBitmap auslesen



  • Hallo,
    ich habe ein Problem mit dem Auslesen der Bildinformationen aus einem CBitmap.

    CDC* pDC = m_view->GetDC();
        CDC memDC; memDC.CreateCompatibleDC(pDC); 
        CBitmap* pBitmap = new CBitmap;
        pBitmap->CreateCompatibleBitmap(pDC, r.Width(), r.Height());
    
        memDC.BitBlt( 0, 0, r.Width(), r.Height(),pDC, r.left, r.top, SRCCOPY ); 
    
        BITMAP bm;
        pBitmap->GetBitmap(&bm);
    
        BITMAPINFO bmi;
    
        bmi.bmiHeader.biSize         = sizeof(BITMAPINFOHEADER);
        bmi.bmiHeader.biWidth        = bm.bmWidth;
        bmi.bmiHeader.biHeight       = bm.bmHeight;
        bmi.bmiHeader.biBitCount     = bm.bmBitsPixel;
        bmi.bmiHeader.biPlanes       = bm.bmPlanes;
        bmi.bmiHeader.biCompression  = BI_RGB;
        bmi.bmiHeader.biSizeImage    = bm.bmBitsPixel * bm.bmWidth * bm.bmHeight / 8;
    
        BYTE *byteArr = new BYTE[bmi.bmiHeader.biSizeImage];
    
        ::GetDIBits( memDC.GetSafeHdc(), 
                     (HBITMAP)&pBitmap,
                     0,
                     bmi.bmiHeader.biHeight,
                     byteArr,
                     &bmi,
                     DIB_RGB_COLORS );
    

    Eigentlich sollten die Bilddaten jetzt in byteArr enthalten sein, sind sie aber nicht! Was mache ich falsch?


Anmelden zum Antworten