读入bmp文件文件头时出错
读入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;
}
实在是不知道为什么....求解答!
结构体的代码:
#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;
}
...全文
相关推荐
BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。
**文件头**:文件头是BMP文件的起点,包含了文件的基本属性信息。
32位纯RGB图片数据添加BMP文件头程序
BMP文件头是每个BMP文件的起始部分,它包含了关于图像的重要元数据,如图像宽度、高度、颜色深度等信息。
BMP图像解析 BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成
BMP图像解析BMP图像文件由四部分组成:文件头、位图信息头、颜色信息和图形数据。文件头文件头数据结构中包含了BMP文件的类型、文件大小和位图起始位置等信息。
BMP图片文件头显示工具.rar
了解BMP文件头对于编程处理BMP图像至关重要,因为文件头包含了图像的基本信息,如宽度、高度、颜色深度等。首先,我们来解析一下BMP文件的结构。一个标准的BMP文件由以下几个部分组成:1.
易语言BMP图片文件头显示工具
例如,在处理BMP文件头时,可能需要将读取到的十六进制数值转换成十进制来理解其具体数值含义,反之亦然。“读字节位”是指读取二进制数据中的每一位,这在处理低级别数据操作时是必要的。


图形处理/算法
