Bmp图像存储格式
图形图像的存储格式
适合网页
设计和开
发
如
HTML、
CSS等
考虑文件大小和画质平衡
JPEG格式:适合照片和 网页图像文件较小画质中 等
PNG格式:适合透明背 景和需要保留细节的图像 文件较大画质较好
GIF格式:适合动画和简 单图像文件较小画质较差
TIFF格式:适合专业图 像和需要保留细节的图像 文件较大画质较好
BMP格式:适合 Windows系统下的图像 文件较大画质较好
图形图像的存储格式
单击添加副标题
汇报人:
目录
01
单击添加目录项标题
02
03
不同存储格式的特点
04
05
图形图像存储格式的未来发展
常见的图形图像存储格式 选择合适的存储格式
1
添加章节标题
02
常见的图形图像存储格式
BMP格式
简介:BMP(Bitmp)是一种常见的图形图像存储格式由微软公司开发。 特点:BMP格式支持多种颜色深度包括1位、4位、8位、16位、24位和32位。 应用:BMP格式广泛应用于Windows操作系统和许多图形图像处理软件中。 优点:BMP格式支持无损压缩可以保留图像的原始质量。 缺点:BMP格式的文件大小较大不适合在网络上传输和存储。
添加 标题
添加 标题
添加 标题
简介:TIFF (Tgged Imge File Formt)是一 种灵活的图像文件 格式支持多种颜色 模式、分辨率和压
缩方式。
特点:TIFF支持无 损压缩和有损压缩 可以保存图像的原 始数据适合用于专 业图像处理和印刷。
应用:TIFF广泛应 用于摄影、印刷、 出版等领域是图像 处理和印刷行业的
GIF格式
特点:支持动画和透明背景 优点:文件体积小适合网络传输 缺点:不支持真彩色颜色数量有限 应用:网页设计、动画制作、表情包等
位图文件(BMP)
位图⽂件(BMP)位图⽂件简介BMP(Bitmap-File)格式是最常⽤的图像⽂件存取格式之⼀,是微软为其Windows环境设置的标准图像格式,BMP位图⽂件默认的⽂件扩展名是“.BMP”或者“.bmp”,有时它也会以“.DIB”或者“RLE”为扩展名。
⽤BMP格式存放的图像⼏乎可以被所有的图像显⽰软件读取。
BMP图形⽂件是Windows采⽤的图像⽂件格式,在Windows环境下运⾏的所有图像软件都⽀持BMP图像⽂件格式。
Windows系统内部个图像绘制操作都是以BMP为基础的。
Windows3.0以前的BMP⽂件格式与显⽰设备有关,因此把这种BMP图像⽂件格式称为设备相关位图(Device Dependent Bitmap,DDB)⽂件格式。
Windows3.0以后的BMP⽂件都与显⽰设备⽆关,因此把这种BMP⽂件格式称为设备⽆关位图(Device Independent Bitmap,DIB)格式。
BMP⽂件格式摘要每个BMP⽂件只能存放⼀张图像。
图像数据是否采⽤压缩⽅式存放,取决于⽂件的⼤⼩与格式,即压缩处理是BMP图像⽂件的⼀个选项,⽤户可以根据需要进⾏选择。
其中,⾮压缩格式是BMP图像⽂件所采⽤的⼀种通⽤格式,它按照⼀定的顺序忠实的记录图像中每⼀个像素的颜⾊值。
如果⽤户确定将BMP⽂件格式压缩处理,则Windows设计了⼀种压缩⽅式:如果位图为16⾊模式,则采⽤RLE4压缩⽅式,如果图像为256⾊模式,则采⽤RLE8压缩⽅式。
BMP图像数据⽂件格式可以存储为单⾊,16⾊,256⾊和真彩⾊四种图像数据,其数据的排列顺序与⼀般⽂件不同,它以图像的左下⾓作为起点存储图像,⽽不是以图像的坐上⾓为起点。
⽽且BMP图像⽂件格式中还存在另外⼀个与众不同的特点,即其调⾊板数据所采⽤的数据结构中,红,绿,蓝三种基⾊数据的排列顺序也恰好与其他图像⽂件格式相反。
总之,BMP图像⽂件格式拥有许多适合于Windows环境的新特⾊,⽽且随着Windows版本的不断更新,微软也在不断的改进BMP图像⽂件格式。
BMP位图图像格式简介(单色)
BMP位图图像格式简介1. 文件结构位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它具有如下所示的形式。
位图文件结构可综合在表1中。
2 四个部分在位图图像数据中的相应位置,(位置偏移均以位图数据开始处为基准)起始位置偏移<=各部分数据具体存放位置<结束位置偏移第一部分,图像头:起始位置偏移0,长度:0x0EH (2byte + 3 * dword = 14)结束位置偏移:起始位置偏移+长度第二部分,图像信息头:起始位置偏移:上一部分结束位置偏移长度:从0x0EH 处读取到的dword 的数据值结束位置偏移:起始位置偏移+长度第三部分,调色板:起始位置偏移:上一部分结束位置偏移长度:从0x0AH 处读取到的dword 的数据值-起始位置偏移结束位置偏移:起始位置偏移+长度第四部分,位图数据:起始位置偏移:上一部分结束位置偏移长度:从0x22H 处读取到的dword 的数据值结束位置偏移:文件结束3 单色位图图像数据的表示方法在单色位图图像中,只有两种颜色,黑色或白色,每一个像素只需要一个比特就能够完成表示,为了清楚比特0或1具体表示哪一种颜色,可以通过查询调色板。
在单色位图图像中,调色板只包含两种颜色,每一种颜色用R G B 0 四个字节表示(在实际的字节流中,顺序是B G R 0)所以,位图图像数据中的0 代表调色板中第一种颜色的颜色值,1 代表调色板中第二种颜色的颜色值。
4 C/C++中数据类型的长度byte :1个字节,8位(比特)word:2个字节,由unsigned short定义dword:4 个字节,由unsigned long定义5 根据前面的位图文件结构表,可以通过自定义数据结构struct的方式来读取相应的数据。
几种图片格式(压缩标准)介绍:BMP、JPEG、JPEG2000、TIFF
几种图片格式(压缩标准)介绍:bmp、jpeg、jpeg2000、tiff2009年03月06日星期五 12:33位图格式(BMP)是一种与硬件设备无关的图像文件格式,使用非常广。
它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BblP文件所占用的空间很大。
BMP 文件的图像深度可选lbit、4bit、8bit及24bit。
BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。
由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。
典型的BMP图像文件由三部分组成:位图文件头数据结构,它包含BMP图像文件的类型、显示内容等信息;位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息。
JPEG是Joint Photographic Experts Group(联合图像专家组)的缩写,文件后辍名为".jpg"或".jpeg",是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。
尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。
但是JPEG 压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像品质。
而且 JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10:1到40:1之间,压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。
比如可以把1.37Mb的BMP位图文件压缩至20.3KB。
bmp存储容量计算公式
bmp存储容量计算公式以bmp存储容量计算公式为标题,我们来探讨一下bmp图像的存储容量计算方法。
BMP是一种无损压缩的图像格式,它的存储容量是由图像的分辨率、色深和压缩方式决定的。
其中,分辨率指的是图像的像素数量,色深指的是每个像素所占用的位数,压缩方式指的是图像是否进行了压缩。
我们来看一下分辨率对BMP图像存储容量的影响。
分辨率越高,图像中的像素数量就越多,存储容量也就越大。
例如,一张分辨率为1920x1080的BMP图像,其存储容量要比分辨率为1280x720的BMP图像大得多。
色深也是影响BMP图像存储容量的重要因素。
色深越高,每个像素所占用的位数就越多,存储容量也就越大。
例如,一张色深为24位的BMP图像,其存储容量要比色深为16位的BMP图像大得多。
我们来看一下压缩方式对BMP图像存储容量的影响。
BMP图像可以进行无损压缩和有损压缩两种方式。
无损压缩可以保证图像质量不受影响,但存储容量相对较大;有损压缩可以减小图像的存储容量,但会对图像质量产生一定的影响。
因此,在选择压缩方式时,需要根据实际需求进行选择。
BMP图像的存储容量计算公式可以表示为:存储容量 = 分辨率 x 色深 x 压缩比例其中,分辨率和色深可以通过图像属性查看得到,压缩比例可以根据实际需求进行选择。
需要注意的是,BMP图像的存储容量是以字节为单位计算的。
在计算存储容量时,需要将位数转换为字节,即将位数除以8。
例如,一张分辨率为1920x1080、色深为24位的BMP图像,其存储容量为:1920 x 1080 x 24 ÷ 8 = 6,220,800 字节也就是说,这张BMP图像的存储容量为6.22MB。
BMP图像的存储容量计算公式可以帮助我们快速准确地计算出BMP图像的存储容量。
在实际应用中,我们需要根据实际需求选择合适的分辨率、色深和压缩方式,以达到最佳的存储效果。
bmp是什么格式
bmp是什么格式BMP 是什么格式在我们日常使用电脑以及处理各种图像文件的过程中,经常会遇到各种各样的文件格式,比如 JPEG、PNG、GIF 等等。
而今天咱们要聊的是 BMP 格式。
BMP 是一种比较常见的图像文件格式,全称为 Bitmap,也就是位图。
简单来说,它就是一种用于存储图像的格式。
BMP 格式的特点之一就是它几乎不进行压缩,或者说压缩率极低。
这就意味着图像在存储时会保留大量的原始数据,从而能够提供非常高的图像质量。
因为没有经过过度的压缩处理,所以图像的细节、颜色等信息都能得到最大程度的保留。
这对于那些对图像质量要求极高的应用场景,比如专业的图像处理、打印等,是非常重要的。
从结构上来看,BMP 格式的文件通常由文件头、信息头、颜色表和图像数据这几个部分组成。
文件头包含了一些关于文件的基本信息,比如文件类型、文件大小、数据起始位置等等。
信息头则提供了关于图像的详细描述,比如图像的宽度、高度、颜色深度等。
颜色表在一些特定的 BMP 格式中存在,用于定义图像中所使用的颜色。
而图像数据部分就是实实在在存储图像每个像素的颜色值了。
BMP 格式的优点是显而易见的。
首先就是前面提到的图像质量高,因为几乎不压缩,所以不会有因为压缩而导致的图像失真或质量下降的问题。
其次,BMP 格式的结构相对简单,易于理解和处理,这对于一些需要直接对图像数据进行操作的程序来说是很方便的。
然而,BMP 格式也有一些明显的缺点。
由于不压缩或者压缩率低,导致文件体积通常较大。
想象一下,一张高分辨率的 BMP 图像可能会占用几十兆甚至上百兆的存储空间,这在网络传输或者存储空间有限的情况下就会带来很大的不便。
在实际应用中,BMP 格式虽然不常直接用于网络上的图像展示或者一般的图像存储,但在某些特定的领域还是有其用武之地的。
比如说,在一些操作系统的界面元素中,或者在一些早期的游戏和程序中,可能会使用 BMP 格式的图像。
另外,对于一些需要进行图像编辑和处理的专业软件,也会支持BMP 格式的导入和导出,方便用户在处理过程中保持图像的高质量。
bmp图片与jpg图片的区别
BMP图片与JPG图片的区别BMP是一种与硬件设备无关的图像文件格式,使用非常广。
它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。
BMP文件的图像深度可选lbit、4bit、8bit及24bit。
BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。
由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows 环境中运行的图形图像软件都支持BMP图像格式。
典型的BMP图像文件由三部分组成:位图文件头数据结构,它包含BMP图像文件的类型、显示内容等信息;位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息。
JPEG是JointPhotographicExpertsGroup(联合图像专家组)的缩写,文件后辍名为".jpg"或".jpeg",是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。
尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。
但是JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像品质。
而且JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10:1到40:1之间,压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。
比如可以把1.37Mb 的BMP位图文件压缩至20.3KB。
当然也可以在图像质量和文件尺寸之间找到平衡点。
JPEG 格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网,可减少图像的传输时间,可以支持24bit真彩色,也普遍应用于需要连续色调的图像。
BMP24位位图格式总结
图像BMP24位位图格式总结1、创建图片创建一张只有六个像素的图片(两行三列),每个像素的颜色RGB组合值如图1(示意图)所示:图12、windows系统下存储格式(使用WinHex打开)3、文件结构3.1 文件头(bmp file header),提供文件的格式、大小等信息,共14个字节,如图2所示。
图23.1.1 0-1字节(2个字节)0x42 0x4d = "BM",表示这是Windows支持的位图格式,如图3所示。
图33.1.2 2-5字节(4个字节),表示该bmp文件的大小,存储形式为图4所示,因为小端对齐形式存储,实际存储的16进制数为0x4e,转换为十进制为78,与我们直接查看此图片的属性所看到的文件大小一致。
注:对于arm,intel这种x86架构的复杂指令CPU,整数在内存中是倒着存放的,低地址放低位,高地址放高位,小端对齐,但对于unix服务器的CPU,更多是采用大端对齐的情况图43.1.3 6-9字节这是两个保留段,为0如图5所示。
图53.1.4 A-D字节如图6所示,存储数据为0x36,十进制为54,表示的意义为从文件头到位图数据需偏移54字节。
图63.2 位图信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息,40个字节,如图7所示。
图73.2.1 0E-11字节,如图8所示,存储数据为0x28,十进制为40,表示意义为:位图信息头的大小为40个字节。
图83.2.2 12-15字节,如图9所示,存储数据为0x03,十进制为3,表示意义为:图像宽为3个像素,与我们创建的图像一致。
图93.2.3 16-19字节,如图10所示,存储数据为0x02,十进制为2,表示意义为:图像高为2个像素,与我们创建的图像一致。
图103.2.4 1A-1B字节,如图11所示,存储数据为0x01,该值总为1,表示意义为位元面数。
bmp
BMP图象格式BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即Windows位图。
它一般由4部分组成:文件头信息块、图像描述信息块、颜色表(在真彩色模式无颜色表)和图像数据区组成。
在系统中以BMP为扩展名保存。
打开Windows 的画图程序,在保存图像时,可以看到三个选项:2色位图(黑白)、16色位图、256色位图和24位位图。
这是最普通的生成位图的工具,在这里讲解的BMP位图形式,主要就是指用画图生成的位图(当然,也可以用其它工具软件生成)。
现在讲解BMP的4个组成部分:1.文件头信息块0000-0001:文件标识,为字母ASCII码“BM”。
0002-0005:文件大小。
0006-0009:保留,每字节以“00”填写。
000A-000D:记录图像数据区的起始位置。
各字节的信息依次含义为:文件头信息块大小,图像描述信息块的大小,图像颜色表的大小,保留(为01)。
2.图像描述信息块000E-0011:图像描述信息块的大小,常为28H。
0012-0015:图像宽度。
0016-0 019:图像高度。
001A-001B:图像的plane总数(恒为1)。
001C-001D:记录像素的位数,很重要的数值,图像的颜色数由该值决定。
001E-0021:数据压缩方式(数值位0:不压缩;1:8位压缩;2:4位压缩)。
0022-0025:图像区数据的大小。
0026-0029:水平每米有多少像素,在设备无关位图(.DIB)中,每字节以00H填写。
002A-002D:垂直每米有多少像素,在设备无关位图(.DIB)中,每字节以00H填写。
002E-0031:此图像所用的颜色数,如值为0,表示所有颜色一样重要。
3.颜色表颜色表的大小根据所使用的颜色模式而定:2色图像为8字节;16色图像位64字节;256色图像为1024字节。
其中,每4字节表示一种颜色,并以B(蓝色)、G(绿色)、R(红色)、alpha(32位位图的透明度值,一般不需要)。
bmp是什么格式
图有关的数据的一种标准,因此在Windows环境中运行的 图形图像软件都支持BMP图像格式。 典型的BMP图像文件由四部分组成: 1:位图
头文件数据结构,它包含BMP图像文件的类型、显示内 容等信息; 2:位图信息数据结构,它包含有BMP图像的宽、高、压 缩方法,以及定义颜色等信
息; 3:调色板,这个部分是可选的,有些位图需要调色板, 有些位图,比如真彩色图(24位的BMP)就不需要调色板; 4:位图数据,这部分的
BMP(全称Bitmap)是Window操作系统中的标准图像文件 格式,可以分成两类:设备相关位图(DDB)和设备无关位 图(DIB),使用非常
广。它采用位映射存储格式,除了图像深度可选以外, 不采用其他任何压缩,因此,BMP文件所占用的空间很 大。BMP文件的图像深度可选lbP文件存储数据时,图像的扫描方式 是按从左到右、从下到上的顺序。由于BMP文件格式是 Windows环境中交换与
内容根据BMP位图使用的位数不同而不同,在24位图中 直接使用RGB,而其他的小于24位的使用调色板中颜色索 引值。 bmp文件怎么打开?
这是WINDOWS的位图文件,使用画笔或者其它的图片查 看器都能打开它。
转载请保留出处,谢谢支持!
网瑞测速 /
BMP图象格式简介
BMP图像格式简介BMP文件由文件头(包括BITMAPFILEHEADER和BITMAPINFOHEADER),调色板(PALETTE)以及图像数据(DA TA)构成。
1.文件头:共计54Byte(以下简记为B,b代表bit)包含两个部分,第一是包含BMP文件类型,大小,打印格式,称为BITMAPFILEHEADER,定义如下:偏移量:0~13,共计14Btypedef struct tagBITMAPFILEHEADER{WORD bftype; //数据地址为0,类型unsigned char,内容‘BM’,表明图像格式DWORD bfsize; //数据地址为2,类型unsigned long,以字节为单位定义图像文件的大小WORD bfReserved1; //数据地址为6,类型unsigned int,保留字WORD bfReserved2; //数据地址为8,类型unsigned int,保留字DWORD bfoffBits; //数据地址为10,类型unsigned long,以字节为单位指示图像数据在文件中的起始地址,即图像数据相对文件头的偏移量}第二部分说明位图的大小等数据,定义如下:偏移量14~53:共计40Btypedef struct tagBITMAPINFOHEADER{DWORD bisize; //数据地址为14,类型unsigned long,以字节为单位指示本结构(BITMAPINFOHEADER)的存储容量,固定为40/28H。
(有改动,最好读取具体的值,而不要直接使用定值。
)DWORD biwidth; //数据地址为18,类型unsigned long,以象素为单位给出BMP图像的宽DWORD biheight; //数据地址为22,类型unsigned long,以象素为单位给出BMP图像的高WORD biplants; //数据地址为26,类型unsigned int,代表目标设备的平面数目为1WORD bibitcount; //数据地址为28,类型unsigned int,确定每个象素所需位数,单色取1,16色取4,256色取8,真彩取24DWORD bicompression; //数据地址为30,类型unsigned long,表明是否压缩DWORD bisizeimage; //数据地址为34,类型unsigned long,以字节为单位给出BMP类图像数据占有空间大小,未压缩图像取为0(不一定)DWORD bixpeispermeter; //数据地址为38,类型unsigned long,垂直分辨率DWORD biypeispermeter; //数据地址为42,类型unsigned long,水平分辨率DWORD biclrused; //数据地址为46,类型unsigned long,位图使用颜色数DWORD biclrimportant; //数据地址为50,类型unsigned long,位图使用重要颜色数}2.调色板调色板存在于256色(8位),16色(4位)和单色(1位)图像中,真彩(24位)图像没有调色板。
bmp原理
bmp原理
BMP(Bitmap)是一种无压缩的图像文件格式,常用于计算
机图形领域。
它的原理是将图像数据以像素阵列的形式存储并按照一定的排列顺序来表示图像。
BMP图像文件由文件头和图像数据两个部分组成。
文件头包
含了一些必要的信息,如文件类型、文件大小、图像的宽度和高度等。
图像数据部分则是按照像素阵列的形式存储实际的图像内容。
在BMP中,每个像素都是由RGB(红绿蓝)三个颜色通道组
成的,每个通道的取值范围为0~255。
通过对这三个通道的不
同取值组合,可以得到不同颜色的像素点,从而生成整个图像。
BMP图像文件按照一定的排列方式来存储像素数据。
常见的
排列方式有横向排列(从左到右、从上到下)和纵向排列(从上到下、从左到右)两种。
横向排列方式是按照逐行的顺序将像素数据存储,而纵向排列方式则是先将每列的像素数据存储,再按照列的顺序将它们组合起来。
BMP图像文件的优点是无损压缩,即图像质量不会因为文件
大小的减小而受到影响。
但是它的文件体积较大,不适合在网络传输中使用。
同时它也不支持透明度,所以在一些需要透明效果的应用场景中不太适用。
除此之外,还有一些衍生的BMP格式,如ICO(图标文件)、CUR(光标文件)等,它们在BMP的基础上增加了一些特殊
的功能和数据结构。
总体来说,BMP文件格式在某些特定的应用场景中仍然具有一定的价值和意义。
关于图片存储格式的整理(BMP格式介绍)
关于图⽚存储格式的整理(BMP格式介绍)BMPBMP(全称Bitmap)是Window操作系统中的标准图像⽂件格式可以分成两类:设备相关位图(DDB)和设备⽆关位图(DIB),使⽤⾮常⼴。
它采⽤位映射存储格式,除了图像深度可选以外,不采⽤其他任何压缩,因此,BMP⽂件所占⽤的空间很⼤。
BMP⽂件的图像深度可选lbit、4bit、8bit及24bit。
BMP⽂件存储数据时,图像的扫描⽅式是按从左到右、从下到上的顺序。
由于BMP⽂件格式是Windows环境中交换与图有关的数据的⼀种标准,因此在Windows环境中运⾏的图形图像软件都⽀持BMP图像格式。
组成 典型的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位图信息头数据⽤于说明位图的尺⼨等信息。
BMP图片格式
缩)、1(BI_RLE8压缩类型)、2(BI_RLE4压缩类型)之一。
(31-34字节)
static int sizeImage;// 位图的大小,以字节为单 位(35-38字节)
int biXPelsPerMeter;// 位图水平分辨率,每 米像素数(39-42字节)
int biYPelsPerMeter;// 位图垂直分辨率,每 米像素数(43-46字节)
每像素占用的位 数,即bpp
每个像素所需的
位数,必须是 1(双色)、4(16色)、 8(256色)、24(真
彩色)之一
字节顺序 31,32,33,34 35,36,37,38
39,40,41,42
43,44,45,46 47,48,49,50 51,52,53,54
数据结构 int int
int
int int int
今天讲的是打开真彩色BMP位图。真 彩色即24位图,它是不需要调色板的。
4:位图数据
这部分的内容因位图实际像素位数和编码格式 而不同,在真彩位图中直接使用RGB真彩色值; 而有调色板的位图则使用调色板中颜色索引值。
位图数据的读取
1.每行的字节数必须是4的倍数,如果不 是,则需要用0补齐。
2.BMP位图数据的存放是从下到上,从左 到右的。先读最后一行,读完后在读倒 数第二行。
返回
2:图像参数,它包含图像的宽、高、压缩方法,以及颜色定义等信息;
字节顺序
数据结构
描述
15,16,17,18
当前结构体的大
int
小,通常是40或
56
19,20,21,22 23,24,25,26
int
图像宽度(像素)
int
BMP图像存储格式
维基百科的BMP定义BMP取自位图BitMaP的缩写,也称为DIB(与设备无关的位图),是微软视窗图形子系统(Graphics Device Interface)内部使用的一种位图图形格式,它是微软视窗平台上的一个简单的图形文件格式。
图像通常保存的颜色深度有2(1位)、16(4位)、256(8位)、65536(16位)和1670万(24位)种颜色(其中位是表示每点所用的数据位)。
8位图像可以是索引彩色图像外,也可以是灰阶图像。
表示透明的alpha通道也可以保存在一个类似于灰阶图像的独立文件中。
带有集成的alpha通道的32位版本已经随着Windows XP出现,它在视窗的登录和主题系统中都有使用。
文件大小计算BMP文件通常是不压缩的,所需存储空间比较大。
一个像素所占的字节数为n∕8字节,n是位深。
文件大小可以根据以下公式近似计算:BMP文件大小≈54+4*2n+(width*height*n)∕8;54是位图文件的文件头,4*2n是调色板的大小(对于没有调色板的位图文件,则不存在这一项),最后一项是像素数据。
由于存储算法决定的因素,实际文件大小和计算值可能有细微差别;因此使用的≈符号而不是等于号。
文件存储格式BMP图像自推出以后,几经演进,存储格式也有所变化。
下表详细描述了位图文件可能包含的数据。
结构体名称可选大小用途备注位图文件头否14字节存储位图文件通用信息仅在读取文件时有用DIB头否固定(存在7种不同版本)存储位图详细信息及像素格式紧接在位图文件头后附加位掩码是3或4 DWORD(12或16字节)定义像素格式仅在DIB头是BITMAPINFOHEADER时存在调色板见备注可变定义图像数据(像素数组)所用颜色色深≤ 8时不能省略填充区A是可变结构体对齐位图文件头中像素数组偏移量的产物像素数组否可变定义实际的像素数值像素数据在DIB头和附加位掩码中定义。
像素数组中每行均以4字节对齐填充区B 是可变结构体对齐DIB头中ICC色彩特性数据偏移量的产物ICC色彩特性数据是可变定义色彩特性可以包含外部文件路径,由该文件来定义色彩特性Remark:像素数组每行均以4字节对齐,这会影响我们怎么读取像素数据。
BMP格式详解
BMP格式详解BMP的4个组成部分:1.文件头信息块0000-0001:文件标识,为字母ASCII码“BM”。
0002-0005:文件大小。
0006-0009:保留,每字节以“00”填写。
000A-000D:记录图像数据区的起始位置。
各字节的信息依次含义为:文件头信息块大小,图像描述信息块的大小,图像颜色表的大小,保留(为01)。
2.图像描述信息块000E-0011:图像描述信息块的大小,常为28H。
0012-0015:图像宽度。
0016-0019:图像高度。
001A-001B:图像的plane总数(恒为1)。
001C-001D:记录像素的位数,很重要的数值,图像的颜色数由该值决定。
001E-0021:数据压缩方式(数值位0:不压缩;1:8位压缩;2:4位压缩0022-0025:图像区数据的大小。
0026-0029:水平每米有多少像素,在设备无关位图(.DIB)中,每字节以00H 填写。
002A-002D:垂直每米有多少像素,在设备无关位图(.DIB)中,每字节以00H 填写。
002E-0031:此图像所用的颜色数,如值为0,表示所有颜色一样重要。
3.颜色表颜色表的大小根据所使用的颜色模式而定:2色图像为8字节;16色图像位64字节;256色图像为1024字节。
其中,每4字节表示一种颜色,并以B (蓝色)、G(绿色)、R(红色)、alpha(32位位图的透明度值,一般不需要)。
即首先4字节表示颜色号1的颜色,接下来表示颜色号2的颜色,依此类推。
4.图像数据区颜色表接下来位为位图文件的图像数据区,在此部分记录着每点像素对应的颜色号,其记录方式也随颜色模式而定,既2色图像每点占1位(8位为1字节);16色图像每点占4位(半字节);256色图像每点占8位(1字节);真彩色图像每点占24位(3 字节)。
所以,整个数据区的大小也会随之变化。
究其规律而言,可的出如下计算公式:图像数据信息大小=(图像宽度*图像高度*记录像素的位数)/8。
opencv bmp标准格式
一、介绍OpenCV是一个开源的计算机视觉库,提供了大量的图像处理和计算机视觉算法,广泛应用于图像处理、模式识别、计算机视觉等领域。
在OpenCV中,BMP(Bitmap)是一种常见的图像文件格式,它以其简单的存储结构和广泛的应用而闻名。
二、BMP格式简介1. BMP图像文件格式是Windows操作系统中最常见的图像文件格式之一。
2. BMP格式的图像数据以像素点阵列存储,每个像素用24位或32位的RGB值表示。
3. BMP格式的文件头包含文件类型、文件大小、图像数据偏移量等信息。
4. BMP格式的图像数据按从左到右、从下到上的顺序排列。
三、OpenCV中的BMP处理1. OpenCV提供了对BMP格式图像文件的读取和写入功能,可以利用OpenCV读取BMP格式的图像文件,并对其进行各种图像处理操作。
2. 通过OpenCV的imread()函数可以读取BMP格式的图像文件,并返回一个Mat对象,方便对图像进行处理。
3. 通过OpenCV的imwrite()函数可以将处理后的图像保存为BMP格式的文件,方便后续的使用和展示。
四、BMP格式的优势1. BMP格式的图像数据存储方式简单,易于理解和处理。
2. BMP格式的图像文件大小相对较小,适合在存储和传输时使用。
3. BMP格式的图像在Windows系统中具有较好的兼容性,可在多种软件和设备中进行展示和使用。
五、BMP格式的局限性1. BMP格式不支持压缩,因此其文件大小相对较大,在存储和传输时可能占用较多的空间和带宽。
2. BMP格式的图像不能包含透明通道信息,无法实现半透明效果。
3. BMP格式不支持多帧图像,无法存储动态图像或视瓶。
六、BMP格式的应用场景1. 由于BMP格式的存储结构简单、易于处理,因此在一些对图像质量要求不高、但对图像处理速度和实时性要求较高的场景中得到广泛应用,如监控摄像头图像处理、工业自动化图像处理等。
2. 由于BMP格式的文件大小相对较小,适合在一些资源受限的环境中进行图像存储和传输,如嵌入式系统、传感器网络等。
BMP格式图片数据格式
BMP格式图片数据格式1.文件头信息块0000-0001:文件格式标识,分别为字母ASCII码“B"和"M”。
0002-0005:文件大小,单位为字节。
0006-0009:保留位,每字节以“00”填写。
000A-000D:记录图像数据区的起始位置。
2.图像描述信息块000E-0011:图像描述信息块的大小,常为28H。
0012-0015:图像宽度。
0016-0019:图像高度。
001A-001B:图像的plane总数(恒为1)。
001C-001D:记录像素的位数,16、24、32。
很重要的数值,图像的颜色数由该值决定。
001E-0021:数据压缩方式(数值位0:不压缩;1:8位压缩;2:4位压缩)。
0022-0025:图像区数据的大小。
0026-0029:水平每米有多少像素,在设备无关位图(.DIB)中,每字节以00H填写。
002A-002D:垂直每米有多少像素,在设备无关位图(.DIB)中,每字节以00H填写。
002E-0031:此图像所用的颜色数,如值为0,表示所有颜色一样重要。
3.图像数据区对应图像的每一像素,数据从左下角开始是第一个颜色,按照BGR排列。
在此部分记录着每个像素对应的颜色数值,其记录方式也随颜色模式而定,既2色图像每点占1位(8位为1字节);16色图像每点占4位(半字节);256色图像每点占8位(1字节);真彩色图像每点占24位(3字节)。
所以,整个数据区的大小也会随之变化。
4、注意•BMP文件记录一行图像是以字节为单位的。
因此,就不存在一个字节中的数据位信息表示的点在不同的两行中。
也就是说,设显示模式位16色,在每个字节分配两个点信息时,如果图像的宽度位奇数,那么最后一个像素点的信息将独占一个字节,这个字节的后4位将没有意义。
接下来的一个字节将开始记录下一行的信息。
•为了显示的方便,除了真彩色外,其他的每中颜色模式的行字节数要用数据“00”补齐为4的整数倍。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:本文简单介绍了位图文件的两种存储格式,并且在VC++6.0下实现了读取位图文件中的数据,用SetPixel()函数在窗口中重现图像,最后在
程序中实现了一种存储格式到另一种存储格式的转换。
关键字:BMP、灰度位图、24位真彩色位图、存储格式
一、前言
BMP(Bitmap的缩写)图像是指文件名后缀为BMP的位图图像。
位图图像在计算机中使用很广泛,例如在windows中,记事本、写字板中的文字就是用位图图像表示出来的。
许多以其它格式存储的图像,就是在位图图像的基础上,进行优化处理后得到的,例如JPEG图像等。
在数字图像处理中,许多算法就是针对24位真彩色位图或灰度位图设计的。
因此,很有必要介绍一下位图文件的这两种存储格式。
二、24位真彩色图像存储格式
把下图的24位真彩色图像格式在16位编辑器(例如VC编辑器)中打开,可以看到图像的二进制数据。
24位真彩色的二进制数据为:
这是24位真彩色位图文件数据一部分。
这一部分数据包括位图文件头、位图信息头和位图阵列三部分。
(一)位图文件头
位图文件头用来记录标志文件大小的一些信息,在文件中占14个字节,存储的内容如下:
字节 1 2 3 4 5 6 7 8 9 10 11 12 13 14 000000 42 4D CC B4 02 00 00 00 00 00 36 00 00 00 其中:
42 4D 为位图的标志,即ASCII码为BM
CC B4 02 表示位图文件的总字节数,换算成十进制为
(02B4CC)H=(177356)10,即这副图像的大小为177356字节。
00 00 00 00 00 为保留字节,用来存储文件大小的数据。
36 00 00 00 00 表示位图阵列的起始位置,(36)H=(54)10即54字节开始为位
图阵列。
(二) 位图信息头
位图信息头记录和位图相关的一些信息,在文件中占40个字节,存储的内容如下:
字节 1 2 3 4 5 6 7 8 9 1
0 1
1
1
2
1
3
1
4
1
5
1
6
00000 0 2
8
00001 6 0
2
C
1
C
5
1
1
8
00003 2 0
1
2
B
1
2
B
00004 8 0
其中:
28 00 00 00 表示信息头的长度,(28)H=(40)10,即位图信息头占40个字
节。
2C 01 00 00 表示位图宽度,单位为像素。
(012C)H=(300)10,即位图的宽度为300个像素。
C5 00 00 00 表示位图高度,单位为像素。
(C5)H=(197)10,即位图的宽度为197个像素。
01 00 表示位图设备级别
18 00 位图级别,(0018)H=(24)10,即24位真彩色。
00 00 00 00 表示压缩类型,为零表示不压缩。
00 00 00 00 保留字节。
12 0B 00 00 表示水平分辨率
12 0B 00 00 表示垂直分辨率
00 00 00 00 表示位图实际使用的颜色表中的颜色变址数。
00 00 00 00 表示位图显示过程中被认为重要颜色变址数。
(三)位图像素阵列
剩下的部分为位图像素阵列,即像素表示部分,每个象素点由3个字节的数据组成,按照从左到右的顺序,分别表示蓝色、绿色、红色。
在VC++中的wingdi.h中对于位图的编码和格式有更加详细的定义,下面给出24位真彩色位图格式在VC++中的定义。
typedef struct tagBITMAPFILEHEADER {//位图文件头
WORD bfType; //位图标志“BM”
DWORD bfSize; //位图文件总字节数
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER;
typedef struct tagBITMAPINFOHEADER{ //位图信息头格式定义
DWORD biSize; //位图信息头占用字节数
LONG biWidth; //位图图像宽度(以像素为单位)
LONG biHeight; //位图图像高度(以像素为单位)
WORD biPlanes; //位图设备级别
WORD biBitCount //位图级别设定,每个像素所需的位数,必须是1(双色), // 4(16色),8(256色)或24(真彩色)之一
DWORD biCompression; //压缩类型
DWORD biSizeImage; //位图阵列表字节数
LONG biXPelsPerMeter; //水平分辨率
LONG biYPelsPerMeter; //垂直分辨率
DWORD biClrUsed; //位图实际使用的颜色表中的颜色变址数
DWORD biClrImportant; //位图显示过程中被认为重要颜色变址数
} BITMAPINFOHEADER;
typedef struct tagRGBTRIPLE { //位图阵列格式定义
BYTE rgbtBlue; //定义蓝色
BYTE rgbtGreen; //定义绿色
BYTE rgbtRed; //定义红色
} RGBTRIPLE;//构成一个3字节的RGBTRIPLE。
按照这个这个结构可以从BMP文件中读取数据,然后在屏幕上用SetPixel()函数描绘出来。
主要代码如下:
if (!cf.Open(TransValue,CFile::modeRead, &e))//找到文件后,打开文件
{
MessageBox("Can not open the file!","Open File");
return;
}
cf.SeekToBegin();
cf.Read(&bmfh,sizeof(bmfh));//读取文件头
cf.Read(&bmih,sizeof(bmih));//读取文件信息头
rgb = new RGBTRIPLE[bmih.biWidth*bmih.biHeight];
cf.SeekToBegin();
cf.Seek(54,CFile::begin);
//读取文件数据
if (cf.GetLength()>64*1024)
{
cf.ReadHuge(rgb,bmih.biWidth*bmih.biHeight*3);//
}
else
{
cf.Read(rgb,bmih.biWidth*bmih.biHeight);
}
//在屏幕上打点显示图像
for (int i=0; i<bmih.biHeight;i++)
{
for (int j=0; j<bmih.biWidth; j++)
{
pDC->SetPixel(j,bmih.biHeight-i,RGB(rgb[i*bmih.biWidth+j].rgb tRed,rgb[i*bmih.biWidth+j].rgbtGreen,rgb[i*bmih.biWidth+j].rgbtBlue)) ;
}
}
cf.Close();//关闭文件
delete rgb;//释放内存
三、灰度位图存储格式
同样,把下面的灰度位图在VC编辑器中以Binary方式打开,可以看到如下的数据(部分):
灰度位图数据:
从上述数据中可以看出,灰度位图的存储格式与24位真彩色位图的存储格式基本相同。
唯一的差别是,灰度位图比24位真彩色位图增加了一部分:颜色索引表。
因此,灰度位图的像素阵列的起始位置不是第(36)H=(54)10个字节,
而是第(436)H=(1078)10个字节,同时灰度位图用一个字节来表示一个像素。
这样,灰度位图的像素阵列小了三分之二。
颜色索引表定义为:
typedef struct rgbn{BYTE red;BYTE green;BYTE blue;BYTE null;} RGBn;
在实际的编程中,读取数据的方式发生了变化,除了要读取文件头,文件信息头外,还要设置变量读取颜色索引表。
除此以外,灰度图像的编程读取显示方式与24位真彩色位图的方式完全相同,在此就不再描述。
从上述灰度位图和24位真彩色位图的存储结构中可以看出,把24位真彩色位图的颜色信息去掉,就可以得到灰度位图。
根据不同的需要,不同的理论,有不同的去掉颜色的方法。
在本文中,仅仅在红、绿、蓝三种基本色前加权三分之一,然后在屏幕上打点显示出来,得到灰度位图图像。
如果需要存储,只需要在文件头、文件信息头后加上颜色索引表,然后再以一个字节的空间存储位图像素信息,把上述信息按顺序写到一个文件中,就得到一个灰度位图图像文件。