Bitmapinfoheader aus Byte-Array auslesen



  • Hallo,
    ich stehe gerade etwas auf dem Schlauch: ich habe ein Bitmap als Byte-Array bmp, die einzelnen Pixel kann ich so auslesen:

    BYTE *bitmapImage = bmp + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
    

    Aber wie komm ich an den BITMAPINFOHEADER?

    BITMAPINFOHEADER bmih = bmp + sizeof(BITMAPFILEHEADER)
    

    funktioniert leider nicht, wäre ja auch zu einfach 😉



  • nimm memcpy ...



  • Danke!!



  • memcpy(bmih,bmp+sizeof(BITMAPFILEHEADER),sizeof(BITMAPINFOHEADER));
    

    Bekomme daraufhin leider folgende Fehlermeldung:

    error C2664: 'memcpy' : cannot convert parameter 1 from 'struct tagBITMAPINFOHEADER' to 'void *'
            No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
    


  • caste es halt
    reinterpret_cast<void*>(&bmih) ... aber so wird das nicht gehen ... du musst beim 2. Parameter den zu kopierenden Speicherbereich angeben ... und beim 3. die Länge jenes und beim 1. den Zielbereich ...


Log in to reply