BMP的对应数据结构

作者&投稿:班裴 (若有异议请与网页底部的电邮联系)
BMP文件中图像数据是按什么顺序存放的?~

BMP文件的数据按照从文件头开始的先后顺序分为四个部分:
◆ 位图文件头(bmp file header): 提供文件的格式、大小等信息
◆ 位图信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息
◆ 调色板(color palette):可选,如使用索引来表示图像,调色板就是索引与其对应的颜色的映射表
◆ 位图数据(bitmap data):图像数据区
BMP文件头结构体定义如下:
typedef struct tagBITMAPFILEHEADER
{ UINT16 bfType; //2Bytes,必须为"BM",即0x424D 才是Windows位图文件
DWORD bfSize; //4Bytes,整个BMP文件的大小
UINT16 bfReserved1; //2Bytes,保留,为0
UINT16 bfReserved2; //2Bytes,保留,为0
DWORD bfOffBits; //4Bytes,文件起始位置到图像像素数据的字节偏移量} BITMAPFILEHEADER;
BMP信息头结构体定义如下:
typedef struct _tagBMP_INFOHEADER
{DWORD biSize; //4Bytes,INFOHEADER结构体大小,存在其他版本I NFOHEADER,用作区分
LONG biWidth; //4Bytes,图像宽度(以像素为单位)
LONG biHeight; //4Bytes,图像高度,+:图像存储顺序为Bottom2Top,-:Top2Bottom
WORD biPlanes; //2Bytes,图像数据平面,BMP存储RGB数据,因此总为1
WORD biBitCount; //2Bytes,图像像素位数
DWORD biCompression; //4Bytes,0:不压缩,1:RLE8,2:RLE4
DWORD biSizeImage; //4Bytes,4字节对齐的图像数据大小
LONG biXPelsPerMeter; //4 Bytes,用象素/米表示的水平分辨率
LONG biYPelsPerMeter; //4 Bytes,用象素/米表示的垂直分辨率
DWORD biClrUsed; //4 Bytes,实际使用的调色板索引数,0:使用所有的调色板索引
DWORD biClrImportant; //4 Bytes,重要的调色板索引数,0:所有的调色板索引都重要
}BMP_INFOHEADER;
BMP调色板结构体定义如下:
typedef struct _tagRGBQUAD
{BYTE rgbBlue; //指定蓝色强度
BYTE rgbGreen; //指定绿色强度
BYTE rgbRed; //指定红色强度
BYTE rgbReserved; //保留,设置为0} RGBQUAD;
1,4,8位图像才会使用调色板数据,16,24,32位图像不需要调色板数据,即调色板最多只需要256项(索引0 - 255)。
颜色表的大小根据所使用的颜色模式而定:2色图像为8字节;16色图像位64字节;256色图像为1024字节。其中,每4字节表示一种颜色,并以B(蓝色)、G(绿色)、R(红色)、alpha(32位位图的透明度值,一般不需要)。即首先4字节表示颜色号1的颜色,接下来表示颜色号2的颜色,依此类推。
颜色表中RGBQUAD结构数据的个数有biBitCount来确定,当biBitCount=1,4,8时,分别有2,16,256个表项。
当biBitCount=1时,为2色图像,BMP位图中有2个数据结构RGBQUAD,一个调色板占用4字节数据,所以2色图像的调色板长度为2*4为8字节。
当biBitCount=4时,为16色图像,BMP位图中有16个数据结构RGBQUAD,一个调色板占用4字节数据,所以16像的调色板长度为16*4为64字节。
当biBitCount=8时,为256色图像,BMP位图中有256个数据结构RGBQUAD,一个调色板占用4字节数据,所以256色图像的调色板长度为256*4为1024字节。
当biBitCount=16,24或32时,没有颜色表。
BMP图像数据区
位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上。位图的一个像素值所占的字节数:
当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;
颜色表接下来位为位图文件的图像数据区,在此部分记录着每点像素对应的颜色号,其记录方式也随颜色模式而定,既2色图像每点占1位(8位为1字节);16色图像每点占4位(半字节);256色图像每点占8位(1字节);真彩色图像每点占24位(3字节)。所以,整个数据区的大小也会随之变化。究其规律而言,可的出如下计算公式:图像数据信息大小=(图像宽度*图像高度*记录像素的位数)/8。

典型的BMP图像文件由四部分组成:1:位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息;2:位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息;3:调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板;4:位图数据,这部分的内容根据BMP位图使用的位数不同而不同,在24位图中直接使用RGB,而其他的小于24位的使用调色板中颜色索引值。

1:BMP文件组成
BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。
2:BMP文件头(14字节)
BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。
其结构定义如下: typedef struct tagBITMAPFILEHEADER{    WORD bfType;//位图文件的类型,必须为BM(1-2字节)    DWORD bfSize;//位图文件的大小,以字节为单位(3-6字节,低位在前)    WORD bfReserved1;//位图文件保留字,必须为0(7-8字节)    WORD bfReserved2;//位图文件保留字,必须为0(9-10字节)    DWORD bfOffBits;//位图数据的起始位置,以相对于位图(11-14字节,低位在前)    //文件头的偏移量表示,以字节为单位}BITMAPFILEHEADER;3:位图信息头(40字节)
BMP位图信息头数据用于说明位图的尺寸等信息。 typedef struct tagBITMAPINFOHEADER{DWORD biSize;//本结构所占用字节数(15-18字节)LONG biWidth;//位图的宽度,以像素为单位(19-22字节)LONG biHeight;//位图的高度,以像素为单位(23-26字节)WORD biPlanes;//目标设备的级别,必须为1(27-28字节)WORD biBitCount;//每个像素所需的位数,必须是1(双色),(29-30字节)//4(16色),8(256色)16(高彩色)或24(真彩色)之一DWORD biCompression;//位图压缩类型,必须是0(不压缩),(31-34字节)//1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一DWORD biSizeImage;//位图的大小(其中包含了为了补齐行数是4的倍数而添加的空字节),以字节为单位(35-38字节)LONG biXPelsPerMeter;//位图水平分辨率,每米像素数(39-42字节)LONG biYPelsPerMeter;//位图垂直分辨率,每米像素数(43-46字节)DWORD biClrUsed;//位图实际使用的颜色表中的颜色数(47-50字节)DWORD biClrImportant;//位图显示过程中重要的颜色数(51-54字节)}BITMAPINFOHEADER;4:颜色表
颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色。RGBQUAD结构的定义如下: typedef struct tagRGBQUAD{BYTE rgbBlue;//蓝色的亮度(值范围为0-255)BYTE rgbGreen;//绿色的亮度(值范围为0-255)BYTE rgbRed;//红色的亮度(值范围为0-255)BYTE rgbReserved;//保留,必须为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个字节,按顺序分别为B,G,R;
Windows规定一个扫描行所占的字节数必须是
4的倍数(即以long为单位),不足的以0填充,
biSizeImage = ((((bi.biWidth * bi.biBitCount) + 31) & ~31) / 8) * bi.biHeight;
具体数据举例:
如某BMP文件开头:
424D 46900000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100*1000 0300 0000 0090 0000 A00F 0000 A00F0000 0000 00000000 0000*00F8 E007 1F00 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 .... ....




cpu是什么和什么组成
CPU组成:运算逻辑部件、寄存器部件和控制部件。

谁能推荐一本讲解Matlab与VC++混合编程的书籍呢?主要是在VC++里调用Mat...
4. 数据类型mxArray的操作 在上节的Matlab引擎函数中,所有与变量有关的数据类型都是mxArray类型。数据结构mxArray以及大量的mx开头的函数,广泛用于Matlab 引擎程序和Matlab C数学库中。mxArray是一种很复杂的数据结构,与Matlab中的array相对应,我们只需熟悉Matlab的array类型和几个常用的mxArray函数即可。 在VC中,...

bmp是什么格式?bmp文件格式怎么打开?
bmp是一种图片格式,可以用电脑自带的照片查看器或画图软件打开,演示电脑系统版本为windows7,具体操作请参照以下步骤。1、首先在电脑上找到目标bmp格式的文件,用鼠标选中。2、然后点击鼠标右键,就会出现一个快捷菜单。3、然后在菜单界面“打开方式”的二级菜单中点击“windows照片查看器”选项。4、这样bmp...

佳能MP198一体机,怎样把手写的文字扫描到电脑里,直接转成word文档,进行...
将各文字块的域界(域在图像中的始点、终点坐标),域内的属性(横、竖排版方式)以及各文字块的连接关系作为一种数据结构,提供给识别模块自动识别。对于文本区域直接进行识别处理,对于表格区域进行专用的表格分析及识别处理,对于图像区域进行压缩或简单存储。行字切分是将大幅的图像先切割为行,再从图像行中分离出单个...

NFC平板是什么
为了加快推动NFC产业的发展,当时的飞利浦、SONY 和诺基亚联合发起成立了 NFC 论坛,旨在推动行业应用的发展,定义相关基于NFC应用的中间层规范,包括一些数据交换通讯协议 NDEF,包括基于非接触式标签的几种 NFC tag 规范,主要涉及到卡片内部数据结构定义,NFC 设备(手机)如何识别一个标准的 NFC 论坛...

CD光盘的格式是什么
CD中的音乐是cda格式。cda音频格式CD格式也就是44.1K的采样频率,速率88K\/秒,16位量化位数,在电脑上看到的“*.cda文件”都是44字节长,不能直接的复制CD格式的*.cda文件到硬盘上播放,需要使用Windows Media Player\/格式工厂把CD格式的文件转换成WAV。

java冒泡排序法代码
冒泡排序是比较经典的排序算法。代码如下:for(int i=1;i<arr.length;i++){for(int j=1;j<arr.length-i;j++){\/\/交换位置}

hawx2怎么解锁飞机?还有怎么弄皮肤?要下载什么补丁吗求下载地址?_百度...
首先我们看Data\\Content\\planes.lua这个文件.这个文件是UBI官方的关卡制作器生成的,他依赖于上层的文件:inicache.bin.所以不是所有的修改都会生效.注意:planes.lua内的文件数据结构直接对应你的存档文件结构,所以修改planes.lua的数据结构必定会对你的存档造成影响,比如一些解锁的飞机消失了,一些解锁的皮肤...

公司部门年度工作情况总结5篇
5.分析ERS数据库和MP数据库中各个表之间的关系,按照ERS数据库的结构,将MP数库中的数据统一整理出来,时间截止到20__年_月__日。 (二)遇到的问题: 1.在测试的过程中发现新系统中部分功能不符合驿若工作人员使用要求,与驿若和开发商共同分析提出修改意见。 2.整理出的错误数据,在修订后仍然还会存在问题,与__...

it运维人员下一年工作计划
5、分析ERS数据库和MP数据库中各个表之间的关系,按照ERS数据库的结构,将MP数据库中的数据统一整理出来,时间截止到xxxx年5月31日。 (二)遇到的问题 1、在测试的过程中发现新系统中部分功能不符合驿若工作人员使用要求,与驿若和开发商共同分析提出修改意见。 2、整理出的错误数据,在修订后仍然还会存在问题,与驿若...

相城区18064679353: BMP的对应数据结构 -
第褚舒成: 1:BMP文件组成 BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成. 2:BMP文件头(14字节) BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息. 其结构定义如下: typedef struct ...

相城区18064679353: BMP格式文件的数据结构 -
第褚舒成: BMP是一种与硬件设备无关的图像文件格式,其支持1,4,8,16,24,32位的图像存储,并且支持非压缩和压缩这两种存储方式,数据是以Little Endian依次存储.由于历史的原因,存在Windows和OS/2两种类型的BMP,目前Windows类型的BMP基...

相城区18064679353: BMP格式是什么 -
第褚舒成: 典型的BMP图像文件由四部分组成: 1:位图文件头数据结构,它包含BMP图像文件的类型、显示内容等信息; 2:位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息; 3:调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板; 4:位图数据,这部分的内容根据BMP位图使用的位数不同而不同,在24位图中直接使用RGB,而其他的小于24位的使用调色板中颜色索引值.

相城区18064679353: BMP是什么意思? -
第褚舒成: BMP是一种与硬件设备无关的图像文件格式,使用非常广.它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大.BMP文件的图像深度可选lbit、4bit、8bit及24bit.BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序. 由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式.

相城区18064679353: BMP格式是什麽 -
第褚舒成: 简单地讲,BMP是一种图像格式文件,文件比较大,色彩失真较小.它的严格定义是这样的BMP是bitmap的缩写,即为位图图片.也是是 DOS 和 Windows 兼容计算机上的标准 Windows 图像格式.在Windows环境下运行的所有图象处理软件都支持BMP图象文件格式.Windows系统内部各图像绘制操作都是以BMP为基础的. 位图图片是用一种称作“像素”的单位存贮图像信息的.这些“像素”其实就是一些整齐排列的彩色(或黑白)点,如果这些点被慢慢放大,您就会看到一个个的“像素”中添充着自己的颜色,这些“像素”整齐地排列起来,就成为了一幅BMP图片,并以.bmp(.rle,.dib等)为扩展名.

相城区18064679353: 什么是BMP,GIF格式? -
第褚舒成: BMP图像文件格式 BMP是一种与硬件设备无关的图像文件格式,使用非常广.它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BblP文件所占用的空间很大.BMP文件的图像深度可选lbit、4bit、8bit及24bit.BMP...

相城区18064679353: 图片格式jpg、gif、jpeg、png,bmp分别是什么意思,? -
第褚舒成: JPG格式是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤.尤其是使用过高的压缩比例,将使...

相城区18064679353: 电脑储存的图片有哪几种格式.分别是什么?有什么区别? -
第褚舒成: BMP:Windows 位图 Windows 位图可以用任何颜色深度(从黑白到 24 位颜色)存储单个光栅图像.Windows 位图文件格式与其他 Microsoft Windows 程序兼容. PCX:PC 画笔 “PC 画笔”图片(也被称为 Z-Soft 位图)会以任何颜色深度存储...

相城区18064679353: JPG和BMP的文件格式有什么不一样?请教电脑高手 -
第褚舒成: BMP是windows的标准图像格式. ——不采用压缩技术,2113所以文件会比较大,与其等价,或说同等级的有TIF格式,一般在印刷业比较常用.JPG是JPEG(号称什么“联合5261图像专家小组”,很多图像编码4102的国际标准都是这个地方制定的)推出的,采用高压缩1653比技术的图像存储格式. ——高压缩比,支持全彩,文件格式很小,但图片回会失真;它和GIF图片,是网页设计行业常用的图片格式.其实图片格式非常多,都是不同的图像编码结果,主要取决于要携带答多少图像信息,所以会有各种各样的差异.不同领域,都有自己惯用的标准.

相城区18064679353: bmp是什么文件? -
第褚舒成: 说起bmp,也许大家都不会陌生了,我们电脑中存储的很多文件都是这个格式的,很多朋友或许知道BMP是图形问价,但bmp文件具体又是什么呢?接下来我们来了解一下. bmp是什么文件 BMP(全称Bitmap)是Windows操作系统中的标准...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网