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,表示意义为位元面数。
- 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位真彩色位图的颜色信息去掉,就可以得到灰度位图。
根据不同的需要,不同的理论,有不同的去掉颜色的方法。
在本文中,仅仅在红、绿、蓝三种基本色前加权三分之一,然后在屏幕上打点显示出来,得到灰度位图图像。
如果需要存储,只需要在文件头、文件信息头后加上颜色索引表,然后再以一个字节的空间存储位图像素信息,把上述信息按顺序写到一个文件中,就得到一个灰度位图图像文件。