Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2096247
  • 博文数量: 909
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 12260
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-06 20:50
文章分类

全部博文(909)

文章存档

2008年(909)

我的朋友

分类:

2008-05-06 21:43:28

一起学习
位图文件读写综述
作者:吉林大学 胡卓玮

一、位图文件结构
  1. 位图文件头
  2. 位图信息
    2.1 位图信息头
    2.2 颜色表
  3. 位图数据

二、位图文件读写操作

  1. 类的声明
  2. 位图的读取
  3. 位图读取过程中的调色板的创建和调用
  4. 位图的显示
  5. 位图的存储
  6. 新位图的创建
  7. 其它问题

三、CFG_DIB的使用


下载本文配套代码

关于位图文件操作的资料很多。为了方便开发人员的工作,写下本文,介绍了位图文件结构,在此基础之上设计了通用类CFG_DIB,用于进行位图文件的读写操作。

一、位图文件结构

位图文件由三部分组成:文件头 位图信息 位图像素数据

1、位图文件头。位图文件头主要用于识别位图文件。以下是位图文件头结构的定义:

typedef struct tagBITMAPFILEHEADER { // bmfh 

    WORD    bfType; 

    DWORD   bfSize; 

    WORD    bfReserved1; 

    WORD    bfReserved2; 

    DWORD   bfOffBits; 

} BITMAPFILEHEADER;
其中的bfType值应该是“BM”(0x4d42),标志该文件是位图文件。bfSize的值是位图文件的大小。
2、位图信息中所记录的值用于分配内存,设置调色板信息,读取像素值等。
以下是位图信息结构的定义:

typedef struct tagBITMAPINFO {

    BITMAPINFOHEADER    bmiHeader;

    RGBQUAD             bmiColors[1];

} BITMAPINFO;

可见位图信息也是由两部分组成的:位图信息头 颜色表



2.1位图信息头。位图信息头包含了单个像素所用字节数以及描述颜色的格式,此外还包括位图的宽度、高度、目标设备的位平面数、图像的压缩格式。以下是位图信息头结构的定义:
typedef struct tagBITMAPINFOHEADER{ // bmih 

    DWORD  biSize; 

    LONG   biWidth; 

    LONG   biHeight; 

    WORD   biPlanes; 

    WORD   biBitCount 

    DWORD  biCompression; 

    DWORD  biSizeImage; 

    LONG   biXPelsPerMeter; 

    LONG   biYPelsPerMeter; 

    DWORD  biClrUsed; 

    DWORD  biClrImportant; 

} BITMAPINFOHEADER; 

下表是对结构体当中各个成员的说明:
结构成员
下载本文示例代码


位图文件读写综述位图文件读写综述位图文件读写综述位图文件读写综述位图文件读写综述位图文件读写综述位图文件读写综述位图文件读写综述位图文件读写综述位图文件读写综述位图文件读写综述位图文件读写综述
阅读(274) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~