방금 .bmp 파일 형식에 대해 더 자세히 배우기 시작했고 작은 C++ programm를 작성했습니다.BITMAPFILEHEADER의 문제점
FILE* imageFile;
fopen_s (&imageFile, this->GetImagePath(), "rb");
fread (&this->bmfh, sizeof(BITMAPFILEHEADER), 1, imageFile);
std::cout << bmfh.bfSize << " " << bmfh.bfOffBits << " " << std::endl;
비트 맵 파일의 크기를 반환해야 MSDNbmfh.bfSize
에 따르면 여기
내 경우에는 bmfh.bfOffBits
(54)가 bmfh.bfSize
(14)보다 높습니까? 그 이유는 무엇일까요? 내 생각은 이런 식으로 이미지 데이터를위한 메모리를 할당했기 때문에 :
this->size = bmfh.bfSize - bmfh.bfOffBits;
pixelData = new BYTE[this->size];
'bmfh'란 무엇입니까? –
bmfh는 클래스 변수입니다. BITMAPFILEHEADER bmfh; –
당신은 적절한 BMP를 읽고 있습니까? (bfType은 19778이어야합니다.) – nothrow