Я только начал узнавать больше о формате файла .bmp и написал небольшую программу на C ++.
Вот выдержка из моего кода:
FILE* imageFile;
fopen_s (&imageFile, this->GetImagePath (), "rb");
fread (&this->bmfh, sizeof(BITMAPFILEHEADER), 1, imageFile);
std::cout << bmfh.bfSize << " " << bmfh.bfOffBits << " " << std::endl;
Согласно MSDN bmfh.bfSize
должен возвращать размер файла растрового изображения.
Но в моем случае bmfh.bfOffBits
(54) больше, чем bmfh.bfSize
(14)?Что может быть причиной?Потому что моя идея заключалась в том, чтобы выделить память для данных изображения следующим образом:
this->size = bmfh.bfSize - bmfh.bfOffBits;
pixelData = new BYTE[this->size];