免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1413 | 回复: 2
打印 上一主题 下一主题

怪事!!关于读bmp文件! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-28 19:37 |只看该作者 |倒序浏览
#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(真彩色)之一 .

论坛徽章:
0
2 [报告]
发表于 2006-05-28 20:22 |只看该作者
32表示32位真彩色位图,BMP文件具体说明去这儿下载:

http://www.bstcomp.com/bbs/Show.asp?id=48&BoardID=10&TB=1

论坛徽章:
0
3 [报告]
发表于 2006-05-28 20:38 |只看该作者
多谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP