BMP文件结构

原创 2004年09月17日 22:10:00
1. BMP文件组成
BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。
2. BMP文件头
BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。

其结构定义如下:

typedef struct tagBITMAPFILEHEADER
{
WORDbfType; // 位图文件的类型,必须为BM
DWORD bfSize; // 位图文件的大小,以字节为单位
WORDbfReserved1; // 位图文件保留字,必须为0
WORDbfReserved2; // 位图文件保留字,必须为0
DWORD bfOffBits; // 位图数据的起始位置,以相对于位图
// 文件头的偏移量表示,以字节为单位
} BITMAPFILEHEADER;

3. 位图信息头

BMP位图信息头数据用于说明位图的尺寸等信息。
typedef struct tagBITMAPINFOHEADER{
DWORD biSize; // 本结构所占用字节数
LONGbiWidth; // 位图的宽度,以像素为单位
LONGbiHeight; // 位图的高度,以像素为单位
WORD biPlanes; // 目标设备的级别,必须为1
WORD biBitCount// 每个像素所需的位数,必须是1(双色),
// 4(16色),8(256色)或24(真彩色)之一
DWORD biCompression; // 位图压缩类型,必须是 0(不压缩),
// 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一
DWORD biSizeImage; // 位图的大小,以字节为单位
LONGbiXPelsPerMeter; // 位图水平分辨率,每米像素数
LONGbiYPelsPerMeter; // 位图垂直分辨率,每米像素数
DWORD biClrUsed;// 位图实际使用的颜色表中的颜色数
DWORD biClrImportant;// 位图显示过程中重要的颜色数
} BITMAPINFOHEADER;

4. 颜色表
颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色。RGBQUAD结构的定义如下:

typedef struct tagRGBQUAD {
BYTErgbBlue;// 蓝色的亮度(值范围为0-255)
BYTErgbGreen; // 绿色的亮度(值范围为0-255)
BYTErgbRed; // 红色的亮度(值范围为0-255)
BYTErgbReserved;// 保留,必须为0
} RGBQUAD;
颜色表中RGBQUAD结构数据的个数有biBitCount来确定:
当biBitCount=1,4,8时,分别有2,16,256个表项;
当biBitCount=24时,没有颜色表项。
位图信息头和颜色表组成位图信息,BITMAPINFO结构定义如下:
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader; // 位图信息头
RGBQUAD bmiColors[1]; // 颜色表
} BITMAPINFO;


5. 位图数据
位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上。位图的一个像素值所占的字节数:

当biBitCount=1时,8个像素占1个字节;
当biBitCount=4时,2个像素占1个字节;
当biBitCount=8时,1个像素占1个字节;
当biBitCount=24时,1个像素占3个字节;
Windows规定一个扫描行所占的字节数必须是
4的倍数(即以long为单位),不足的以0填充,
一个扫描行所占的字节数计算方法:
DataSizePerLine= (biWidth* biBitCount+31)/8;
// 一个扫描行所占的字节数
DataSizePerLine= DataSizePerLine/4*4; // 字节数必须是4的倍数
位图数据的大小(不压缩情况下):
DataSize= DataSizePerLine* biHeight;

BMP文件结构处理与显示

1.1图和调色板的概念 如今Windows(3.x以及95,98,NT)系列已经成为绝大多数用户使用的操作系统,它比DOS成功的一个重要因素是它可视化的漂亮界面。那么Windows是如何显示图象...
  • CSDNwei
  • CSDNwei
  • 2015年08月31日 18:16
  • 653

BMP图片文件结构重要信息介绍

BMP图片在网上很多,因为是无压缩 ,使用单片机
  • weiyidianliu
  • weiyidianliu
  • 2014年10月01日 12:32
  • 1544

BMP位图结构很详细的说明和…

原文地址:BMP位图结构很详细的说明和示例作者:立志转自:http://www.madio.net/tool/thread-1995-1-1.html 一、文件格式 Bmp文件是非常常用的位图文件,...
  • fandongguang0702
  • fandongguang0702
  • 2016年06月26日 10:45
  • 1736

BMP文件结构读写操作

之前一直都准备写blog来记录自己的学习,现在总算有时间有精力了,希望大家能共同学习,互相讨论,如果文中有什么不妥之处,还请您指出,谢谢。 今天写的是一篇有关位图操作的文章,主要是实现了bmp的读...
  • buxiehuai
  • buxiehuai
  • 2016年04月11日 09:27
  • 464

BMP文件结构

  • degree_37
  • degree_37
  • 2008年07月16日 10:14
  • 184

*.bmp文件结构

*.bmp文件结构 *.bmp文件和大多数图形文件一样,分为文件描述区(头文件信息)和图象存储区(象素数据)两部分。而头文件信息中又包含了信息区和调色板区两部分,信息区又可以细分为文件信息区和图象信...
  • caiqi1123
  • caiqi1123
  • 2011年11月04日 13:00
  • 791

BMP文件结构

一、BMP文件结构         BMP文件组成     BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。       BMP文件头     BMP文件头数据结构含有BMP文件的类型、...
  • limax_2004
  • limax_2004
  • 2007年10月10日 12:56
  • 513

BMP文件结构

  一、BMP文件结构           ----   1.   BMP文件组成           ----   BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。          ...
  • nitghost
  • nitghost
  • 2009年01月06日 14:50
  • 430

bmp文件结构

【转自网络】 BMP文件存储结构的格式可以在Windows中的WINGDI.h文件中找到定义。 BMP文件总体上由4部分组成,分别是位图文件头、位图信息头、调色板和图像数据,如表5-1所示。 表...
  • u010743187
  • u010743187
  • 2014年02月10日 21:43
  • 416

BMP文件结构及其存取

BMP文件结构如图1-7所示,BMP图像文件被分成4个部分:位图文件头(Bitmap File Header)、位图信息头(Bitmap Info Header)、颜色表(Color Map)和位图数...
  • alec1987
  • alec1987
  • 2010年07月19日 20:33
  • 511
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:BMP文件结构
举报原因:
原因补充:

(最多只允许输入30个字)