C++ Bitmap Random PixelData
-
Hallo,
bei meinen weiteren Experimenten mit Bitmaps und C++, bin ich nun auf ein
Problem mit dem PixelData "Block" gestoßen. Ich möchte dabei für meine
Pixel Data zufallsgenerierte Zahlen. (bmpFile/Info Header funktionieren)
Hier mein Ansatz (nur für 32x32 BMP - monochrome):ofstream bmpfile; bmpfile.open(filename, ios::binary | ios::out); //FileHeader, InfoHeader + RGBQuad vector <DWORD> pxData; { for (int i = 0; i < height; i++) { UINT32 rnd = rand() % 255 + 1; pxData.push_back(rnd); } } // [...] bmpfile.write((char *)&pxData, sizeof(pxData));
Mein Ziel ist es quasi in den Vektor 4 Byte (UINT32) zu schreiben, welche
zufallsgeneriert werden und das eben für jede Zeile in der Bitmap. Wenn ich
jetzt zum Beispiel 200 als Zahl herausbekomme müssten die 4 Bytes um Nullen
ergänzt werden (also 0xC8 0x00 0x00 0x00). Allerdings bekomme ich beim
betrachten mit dem HexEdit auf andere Zahlen, als die zufallsgenerierten
und bekomme für meine PixelData immer nur auf genau 16 Bytes, egal welche
Höhe (in der for-Schleife). Ausgeben wird es richtig, allerdings nicht
korrekt in die Datei geschrieben, kann mir jemand helfen?Gruß
Cyax
-
bmpfile.write((char *)&pxData[0], pxData.size()*sizeof(DWORD));
-
Danke
hat funktioniert...Gruß
Cyax