- 论坛徽章:
- 0
|
#include "stdio.h"
typedef struct
{
char buf[28];
int biBitCount;
}InfoHeader;
void main(void)
{
FILE *fp;
InfoHeader header;
fp=fopen("e:\leaf.bmp","rb");
if(!fp)
{
printf("Open error!");
getch();
}
else
{
fread(&header,sizeof(InfoHeader),1,fp);
printf("biBitCount: %d",header.biBitCount);
getch();
}
}
BMP位图信息头数据用于说明位图的尺寸等信息.
typedef struct tagBITMAPINFOHEADER{
DWORD biSize; // 本结构所占用字节数
LONG biWidth; // 位图的宽度,以像素为单位
LONG biHeight; // 位图的高度,以像素为单位
WORD biPlanes; // 目标设备的级别,必须为1
WORD biBitCount; // 每个像素所需的位数,必须是1(双色),4(16色),8(256
色)或24(真彩色)之一
DWORD biCompression; // 位图压缩类型,必须是 0(不压缩),1(BI_RLE8压缩类型
)或2(BI_RLE4压缩类型)之一
DWORD biSizeImage; // 位图的大小,以字节为单位
LONG biXPelsPerMeter;// 位图水平分辨率,每米像素数
LONG biYPelsPerMeter;// 位图垂直分辨率,每米像素数
DWORD biClrUsed; // 位图实际使用的颜色表中的颜色数
DWORD biClrImportant; // 位图显示过程中重要的颜色数
} BITMAPINFOHEADER;
本程序想得到:位图实际使用的颜色表中的颜色数。
可是我得到的结果是32
怪了!!
求教了!!!
WORD biBitCount; // 每个像素所需的位数,必须是1(双色),4(16色),8(256
色)或24(真彩色)之一 . |
|