M
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_62uq.asp
msdn schrieb:
bfReserved1
Reserved; must be zero.
bfReserved2
Reserved; must be zero.
zu bih: dürfte vermutlich für dich uninteressant für dich sein.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_62uq.asp
evtl hilft dir die ein beispiel aus meiner bitmap klasse
static void Write(
std::ostream &s,
size_t nWidth,
size_t nHeight,
size_t nBpp,
unsigned char *pData)
{
// bitmapfileheader
struct
{
unsigned char B, M;
unsigned long nSize;
unsigned short nReserved1;
unsigned short nReserved2;
unsigned long nOffsetBits;
} Bfh;
// bitmapimageheader
struct
{
unsigned long nSize;
long nWidth;
long nHeight;
unsigned short nPlanes;
unsigned short nBPP;
unsigned long nCompression;
unsigned long nImageSize;
long nWidthPPM;
long nHeightPPM;
unsigned long nColorUsed;
unsigned long nColorImportant;
} Bih;
Bfh.nSize = sizeof(Bfh); // grösse überprüfen
Bfh.B = 'B';
Bfh.M = 'M';
Bfh.nReserved1 = 0;
Bfh.nReserved2 = 0;
Bfh.nOffsetBits = sizeof(Bfh) + sizeof(Bih); // grösse überprüfen
Bih.nSize = sizeof(Bih); // grösse überprüfen
Bih.nPlanes = 1;
Bih.nBPP = static_cast<unsigned short>(nBpp);
Bih.nCompression = 0;
Bih.nImageSize = nWidth * nHeight * (nBpp >> 3);
Bih.nWidthPPM = 0;
Bih.nHeightPPM = 0;
Bih.nColorUsed = 0;
Bih.nColorImportant = 0;
Bih.nWidth = nWidth;
Bih.nHeight = nHeight;
// um 'padding-bytes' zu vermeiden wird alles einzeln gespeichert
s.write((char*)&Bfh.B, sizeof(unsigned char));
s.write((char*)&Bfh.M, sizeof(unsigned char));
s.write((char*)&Bfh.nSize, sizeof(unsigned long));
s.write((char*)&Bfh.nReserved1, sizeof(unsigned short));
s.write((char*)&Bfh.nReserved2, sizeof(unsigned short));
s.write((char*)&Bfh.nOffsetBits, sizeof(unsigned long));
s.write((char*)&Bih, sizeof(Bih));
s.write((char*)pData, Bih.nImageSize);
}