BMP文件结构

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.

因为用到的只是24位图,所以文章也尽限于此。

 

24位图结构:文件头,信息头,位图数据   

 

文件头:       

typedef __packed struct    tagBITMAPFILEHEADER                                                                           {
       WORD bfType;//文件标志,2个字节。
       DWORD bfSize;//文件大小,4个字节
       WORD bfReserved1;//保留,2个字节
       WORD bfReserved2;//保留,2个字节
       DWORD bfoffBits;//位图偏移量,4个字节
}BITMAPFILEHEADER;


说明:

1.paceke为使结构体变量在内存中紧凑排列的说明符,不是标准C写法,ADS1.2中可以使用。

2.BMP文件在硬盘中是以小端模式存储的。

3.位图偏移量值的是从文件头0x0直接偏移到正文部分

 

信息头:

typedef __packed struct tagBITMAPINFOHEADER

{
 DWORD biSize;//信息头大小,4个字节
 DWORD biWidth;//位图宽度,4个字节
 DWORD biHeight;//位图高度,4个字节
 WORD  biPlanes;位图的位面数(1),2个字节
 WORD  biBitCount;//每个像素点所需的数据位数(24),2个字节

 DWORD biCompression;//压缩算法,4个字节

 DWORD biSizeImage;//位图数据字节数,4个字节
 DWORD biXPeIsPerMeter;//以像素/米的单位表示水平分辨率,4个字节
 DWORD biYPeIsPerMeter;//以像素/米的单位表示垂直分辨率,4个字节
 DWORD biClrUsed;//位图使用的颜色数,4个字节
 DWORD biClrImportant;//指定重要颜色数
} BITMAPINFOHEADER;

 

位图数据

//颜色表数据结构,即调色板数据
typedef __packed struct tagRGBQUAD
{
 BYTE rgbBlue :8;    //RGB 蓝 
 BYTE rgbGreen :8;    //RGB 绿
 BYTE rgbRed :8;     //RGB 红
 //BYTE rgbReserved :8;   //保留,24位BMP不需要这一位
}RGBQUAD;

在位图数据中是BLUE GREEN RED这样排列数据的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值