BMP文件的头是由一个BITMAPFILEHEADER 紧跟着一个 BITMAPINFOHEADER构成的, 两个结构如下:typedef struct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } BITMAPFILEHEADER; typedef struct tagBITMAPINFOHEADER { DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER; 这是在VC里表示的结构LONG 是 long DWORD 是 unsgined long WORD 是 unsigned short
两个结构如下:typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER;
typedef struct tagBITMAPINFOHEADER {
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER; 这是在VC里表示的结构LONG 是 long
DWORD 是 unsgined long
WORD 是 unsigned short
biheight在第几位??
我的意思是读图片文件文件给结构体的成员赋值,是按照定义的顺序依次赋值么?
比如
fread(buffertemp,65535,1,bmpfile);
bitmapfileheader.bftype = buffertemp[0];
bitmapfileheader.bfsize = buffertemp[1];
…………
是这种形式么?
memcpy( &bitmapfileheader, buffertemp, sizeof( BITMAPFILEHEADER ) );
memcpy( &bitmapinfoheader, buffertemp + sizeof( BITMAPFILEHEADER ), sizeof( BITMAPINFOHEADER ) );
...........
是这种形式....