讀入bmp檔案的檔案頭的時候,用結構體BITMAPFILEHEADER,但是讀入的前幾個位元組不是0x4d42,是55551....
實在是不知道為什么....求解答!
結構體的代碼:
#pragma pack(1)
typedef struct {
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER_T;
typedef struct {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER_T;
#pragma pack()
讀檔案的代碼:
FILE* F;
if (strlen(cFileName) < 1)//判斷檔案名是否合法
return false;
F = fopen(cFileName, "r+b");//可讀二進制
if (F == NULL)
return false;
BITMAPFILEHEADER_T FH;//檔案頭
BITMAPINFOHEADER_T IH;//資訊頭
fread(&FH, sizeof(BITMAPFILEHEADER_T), 1, F);//讀入檔案頭
if (FH.bfType != 0x4d42)
{
//"BM"
fclose(F);
return false;
}
uj5u.com熱心網友回復:

求求了 有沒有大神QAQ
uj5u.com熱心網友回復:
用 “畫圖 ”打開 試試C:\Windows\System32\mspaint.exe
uj5u.com熱心網友回復:
UltraEdit之類的 16進制方式打開看看檔案是否正常?轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/18559.html
標籤:圖形處理/算法
下一篇:vs2017 跨平臺
