我刚刚开始了解更多关于 .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];