BMP格式

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
  首 页 | 新 闻 | 技术中心 | 第二书店 | 《程序员》 | 《开发高手》 | 社 区 | 黄 页 | 人 才
移 动专 题SUNIBM微 软微 创精 华Donews人 邮
我的技术中心 
我的分类我的文档
最新文章发表文章
专栏管理使用说明

 RSS 订阅 
Windows/.NET
.NET  (rss)    
Visual C++  (rss)    
Delphi  (rss)    
Visual Basic  (rss)    
ASP  (rss)    
JavaScript  (rss)    
Java/Linux
Java  (rss)    
Perl  (rss)    
综合
其他开发语言  (rss)    
文件格式  (rss)    
企业开发
游戏开发  (rss)    
网站制作技术  (rss)    
数据库
数据库开发  (rss)    
软件工程
其他  (rss)    

积极原创作者 
windoze (12)
ngnr (3)
unique001 (2)
duckur (2)
CanvasHat (5)
chensheng913 (132)
yolle (1)
sbf2000 (1)
ycg01 (1)
ezdevelop (29)
CSDN - 文档中心 - 文件格式 阅读:4072   评论: 7    参与评论
标题  BMP文件结构     hujun614 [收藏]
关键字  BMP,Bitmap
出处 
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;




相关文章
对该文的评论
qyci ( 2004-05-04)
skyyoung:
当biBitCount为8时,使用了颜色索引表,即调色板,每个字节存放的是该点颜色在调色板中的索引,而该点的真正RGB值在调色板中,为RGBQUAD结构,即b,g,r,reserved四个字节。
qtnl ( 2004-04-20)
有压缩的描述吗 ?
sender123 ( 2003-08-14)
是好东东,可是我是个初学者,大虾们,能告诉我怎么应用它吗 ,我的qq是185977188
谢谢
Samland ( 2003-05-12)
好,要收藏
rebel_321 ( 2002-10-15)
一个扫描行所占的字节数计算方法:
DataSizePerLine= (biWidth* biBitCount+31)/8; 错了

应该是
DataSizePerLine= (biWidth* biBitCount+31)/32*4; 


网站简介 - 广告服务 - 网站地图 - 帮助信息 - 联系方式 - English
北京百联美达美数码科技有限公司 版权所有 京ICP证020026号
Copyright © CSDN.NET, Inc. All Rights Reserved
详解BMP格式 详解BMP文件格式  转载请注明出处        BMP是bitmap的缩写,顾名思义,BITMAP就是位图,及windows位图,是一种未经过压缩的图像。其使用范围非常广泛,是windows环境中交换图像有关数据的一种标准。所以,在windows环境中运行的设备都支持BMP图像格式,并采用了为映射的格式储存。当用BMP文件存储数据结构时,图像的扫描顺序是按照从左到右,从下到上的顺序 阅读详情

相关推荐

BMP文件结构

BMP文件结构由四个区块组成,分别是文件头区块、位图信息区块、索引色区块和颜色数据区块。 文件头共14个字节,位图信息块共40个字节; 颜色数据区块的字节长度=位图宽*位图高,如果是24位色,颜色数据区块的字节长度=位图宽*位图高*3,而且位图宽*3必须是4的倍数,不然自动不全; 一、文件头区块(14个字节)具体含义 字节地址 长度 说明 16进制示例 0-1 ...

lzljy的专栏 1811

图像算法-BMP格式图片的数据结构

前言 图像处理的第一步就是读取图像数据,图像数据存储的文件格式有很多,比如Bmp,Jpg,Png等。通过opencv算法库,我们可以很方便的读取这些文件中的图像数据。其实,我们也可以根据图片文件的存储方式,自己编码实现对图片数据的读取。Bmp格式图片,在图像领域经常被使用,由于没有经过编码,因此进行数据读取非常方便,下面就详细介绍格式图片的数据结构。 正文 文件头 typedef str...

ch190029975的博客 3202

bmp 格式数据结构

bmp 格式数据结构

xie__jin__cheng的博客 687

BMP格式详解

BMP格式详解 BMP文件格式详解(BMP file format) BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域的数据,因此成为我们取得RAW数据的重要来源。Windows的图形用户界面(graphical user interfa...

nicholas_duan的博客 1万+

哪里能下载到bmp格式的图片

如果你电脑里已经有图片了,那你就右击你的图片--打开方式--画图,打开图片后再点文件--另存为,把保存类型改为bmp格式就可以了,如果。要网上下的话很多写着是bmp,下载下来还是JPG什么的,气!学到了学到了...

PinkAir的博客 5万+

BMP文件格式解析

BMP文件格式解析 作者:水木子 一、图像概述 1.1 位图 位图(Bitmap),又称栅格图(英语:Raster graphics)或点阵图,是使用像素阵列来表示的图像。 ----维...

水木子的博客 8133

bmp格式说明

bmp24位位图格式 创建bmp24位位图格式的图片 打开Windows系统自带的画面软件,如下: 点击“文件 > 另存为”,在弹出的界面中有4种bmp格式可以选择,如下: 不知道bmp格式是不是只有上面的4种,还是有更多,我也懒得了解,这里我们只了解“24位位图”的bmp格式,因为这个格式比较简单,所以,在保存图片的时候要选择24位位图的bmp格式,不要选错了。 bmp24位位图格式说明 重新调整大小,如下: 如上图,点击“重新调整大小”,然后在出现的界面中设置大小为2 x 3,这样的话我们的

Android菜鸟的专栏 5859

【基础】BMP格式

BMP取自位图Bitmap的缩写,也称为DIB(与设备无关的位图),是一种独立于显示器的位图数字图像文件格式。常见于微软视窗和OS/2操作系统,Windows GDI API内部使用的DIB数据结构BMP 文件格式几乎相同。BMP文件通常是不压缩的,所以它们通常比同一幅图像的压缩图像文件格式要大很多。因此它们通常不适合在因特网或者其他低速或者有容量限制的介质上进行传输。8位图像可以是索引彩色图像外,也可以是灰阶图像。表示透明的alpha通道也可以保存在一个类似于灰阶图像的独立文件中。

weixin_41838721的博客 5941

BMP图片格式分析(超详细)

本文主要详解BMP图片格式,以24位为主来介绍BMP文件的格式以及数据分析

余识- 1万+

BMP图像 - BMP格式

BMP - (全称Bitmap) 是Windows操作系统中的标准图像文件格式,采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。 BMP文件存储数据时, 图像的扫描方式是按从左到右、从下到上的顺序。所以图案加载到内存后,行数据和显示的行顺序是上下颠倒的 BMP文件格式如下: 数据段名称 大小(Byte) 作用 bmp文件头 14 提供文件的格式、大小等信息 位图信息头 4

C学习 1216

BMP格式详解<转>

BMP格式详解

whl0071的专栏 3421

BMP图片格式

参考内容: BMP格式详解 1、整体信息 BMP格式的文件从头到尾依次是如下信息: bmp文件头(bmp file header):共14字节; 位图信息头(bitmap information):共40字节; 调色板(color palette):可选; 位图数据; 2、bmp文件头(bmp file header) bmp文件头包含如下信息: bfType:2字节,文件类型; bfSize:4字节,文件大小; bfReserved1:2字节,保留,必须设置为0; bfReserved2:2字节,保留,必

alphaCat的专栏 1223

图片 bmp 格式详解

1 概述 BMP(Bitmap-File)图片文件格式,又称为 Bitmap (位图)或是 DIB(Device-Independent Device,设备无关位图),是 Windows 系统中广泛使用的图像文件格式。 由于它可以不作任何变换的保存图像像素域的数据,因此成为我们取得 RAW 数据的重要来源。Windows 的图形用户界面(graphical user interfaces)也在它的...

岁月斑驳7的博客 4857
上一篇: 游戏引擎
下一篇: 硬盘分区
Attena
博客等级 码龄23年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值