位图存储格式
常用图片文件格式

常用图片文件格式1、bmp格式——位图文件——几乎不压缩——占用磁盘空间过大Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。
随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。
这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点——占用磁盘空间过大。
2、jpg格式——国际标准图像压缩格式——有损压缩JPEG是国际标准图像压缩格式,是用于连续色调静态图像压缩的一种标准,文件后缀名为,jpg或,jpeg,是最常用的图像文件格式。
属于有损压缩格式,它能够将图像压缩在很小的储存空间,一定程度上会造成图像数据的损伤。
尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量降低,如果追求高品质图像,则不宜采用过高的压缩比例。
JPEG压缩技术十分先进,它可以用有损压缩方式去除冗余的图像数据,换句话说,就是可以用较少的磁盘空间得到较好的图像品质。
而且JPEG是一种很灵活的格式,具有调节图像质量的功能,它允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比越大,图像品质就越低;相反地,压缩比越小,图像品质就越高。
同一幅图像,用JPEG格式存储的文件是其他类型文件的1/10~1/20,通常只有几十KB,质量损失较小,基本无法看出。
JPEG格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网;它可减少图像的传输时间,支持24位真彩色;也普遍应用于需要连续色调的图像中。
3、png格式——无损压缩的位图格式——支持透明效果png是一种采用无损压缩算法的位图格式,其设计目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。
PNG使用无损数据压缩算法,一般应用于JAVA程序、网页中,原因是它压缩比高,生成文件体积小。
PNG可以为原图像定义256个透明层次,使得彩色图像的边缘能与任何背景平滑地融合,从而彻底地消除锯齿边缘。
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,表示意义为位元面数。
JPG、GIF、BMP和PNG

JPG、GIF、BMP和PNG格式分别是什么意思?BMP格式BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。
随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。
这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点--占用磁盘空间过大。
所以,目前BMP在单机上比较流行。
GIF格式GIF是英文Graphics Interchange Format(图形交换格式)的缩写。
顾名思义,这种格式是用来交换图片的。
事实上也是如此,上世纪80年代,美国一家著名的在线信息服务机构CompuServe针对当时网络传输带宽的限制,开发出了这种GIF图像格式。
GIF格式的特点是压缩比高,磁盘空间占用较少,所以这种图像格式迅速得到了广泛的应用。
最初的GIF只是简单地用来存储单幅静止图像(称为GIF87a),后来随着技术发展,可以同时存储若干幅静止图象进而形成连续的动画,使之成为当时支持2D动画为数不多的格式之一(称为GIF89a),而在GIF89a图像中可指定透明区域,使图像具有非同一般的显示效果,这更使GIF风光十足。
目前Internet上大量采用的彩色动画文件多为这种格式的文件,也称为GIF89a格式文件。
此外,考虑到网络传输中的实际情况,GIF图像格式还增加了渐显方式,也就是说,在图像传输过程中,用户可以先看到图像的大致轮廓,然后随着传输过程的继续而逐步看清图像中的细节部分,从而适应了用户的"从朦胧到清楚"的观赏心理。
目前Internet上大量采用的彩色动画文件多为这种格式的文件。
GIF格式只能保存最大8位色深的数码图像,所以它最多只能用256色来表现物体,对于色彩复杂的物体它就力不从心了。
尽管如此,这种格式仍在网络上大行其道应用,这和GIF图像文件短小、下载速度快、可用许多具有同样大小的图像文件组成动画等优势是分不开的。
Bmp图像存储格式

摘要:本文简单介绍了位图文件的两种存储格式,并且在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码为BMCC 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 10 11121314151600000 0 2800001 6 02C1C511800003 2 012B12B00004 8 0其中:28 00 00 00 表示信息头的长度,(28)H=(40)10,即位图信息头占40个字节。
TIFF

TIFF格式是文档图像和文档管理系统中的标准格式。在这种环境中它通常使用支持黑白(也称为二值或者单 色)图像的CCITT Group IV 2D压缩。在大量生产的环境中,文档通常扫描成黑白图像(而不是彩色或者灰阶图 像)以节约存储空间。A4大小200dpi(每英寸点数分辨率)扫描结果平均大小是30KB,而300dpi的扫描结果是 50KB。300dpi比200dpi更加常用。
简写
TIFF(Tag Image File Format)图像文件是图形图像处理中常用的格式之一,其图像格式很复杂,但由于 它对图像信息的存放灵活多变,可以支持很多色彩系统,而且独立于操作系统,因此得到了广泛应用。在各种地 理信息系统、摄影测量与遥感等应用中,要求图像具有地理编码信息,例如图像所在的坐标系、比例尺、图像上 点的坐标、经纬度、长度单位及角度单位等等。 它最初由 Aldus公司与微软公司一起为PostScript打印开发。
TIFF有一个使用LZW压缩的选项,这是一种减小文件大小的无损技术,但是这项技术在不同的司法权限内为 几个专利所涵盖。到了2005年,除了一个之外这些专利都已经到期,其中包括Unisys所拥有的广为人知又有很多 争议的专利。另外一个著名的专利是IBM拥有的将在2006年8月11日到期的专利,IBM也没有要加强它的意思(who has shown no interest to date in enforcing it)。
尽管现今它是一种被广泛接受的标准格式,当TIFF最初出现的时候,它的可扩展性带来了很多兼容问题。程 序员可以随意定义新的标签和选项,但是并不是所有的实现程序都能支持这些创造出来的标签。作为结果,它的 一个最小特性集成为了“这个”TIFF,大量的TIFF文件和读取它们的代码都是基于简单的32位非压缩图像。
bmp是什么格式

bmp是什么格式BMP 是什么格式在我们日常使用电脑以及处理各种图像文件的过程中,经常会遇到各种各样的文件格式,比如 JPEG、PNG、GIF 等等。
而今天咱们要聊的是 BMP 格式。
BMP 是一种比较常见的图像文件格式,全称为 Bitmap,也就是位图。
简单来说,它就是一种用于存储图像的格式。
BMP 格式的特点之一就是它几乎不进行压缩,或者说压缩率极低。
这就意味着图像在存储时会保留大量的原始数据,从而能够提供非常高的图像质量。
因为没有经过过度的压缩处理,所以图像的细节、颜色等信息都能得到最大程度的保留。
这对于那些对图像质量要求极高的应用场景,比如专业的图像处理、打印等,是非常重要的。
从结构上来看,BMP 格式的文件通常由文件头、信息头、颜色表和图像数据这几个部分组成。
文件头包含了一些关于文件的基本信息,比如文件类型、文件大小、数据起始位置等等。
信息头则提供了关于图像的详细描述,比如图像的宽度、高度、颜色深度等。
颜色表在一些特定的 BMP 格式中存在,用于定义图像中所使用的颜色。
而图像数据部分就是实实在在存储图像每个像素的颜色值了。
BMP 格式的优点是显而易见的。
首先就是前面提到的图像质量高,因为几乎不压缩,所以不会有因为压缩而导致的图像失真或质量下降的问题。
其次,BMP 格式的结构相对简单,易于理解和处理,这对于一些需要直接对图像数据进行操作的程序来说是很方便的。
然而,BMP 格式也有一些明显的缺点。
由于不压缩或者压缩率低,导致文件体积通常较大。
想象一下,一张高分辨率的 BMP 图像可能会占用几十兆甚至上百兆的存储空间,这在网络传输或者存储空间有限的情况下就会带来很大的不便。
在实际应用中,BMP 格式虽然不常直接用于网络上的图像展示或者一般的图像存储,但在某些特定的领域还是有其用武之地的。
比如说,在一些操作系统的界面元素中,或者在一些早期的游戏和程序中,可能会使用 BMP 格式的图像。
另外,对于一些需要进行图像编辑和处理的专业软件,也会支持BMP 格式的导入和导出,方便用户在处理过程中保持图像的高质量。
tiff 格式解析

TIFF(Tagged Image File Format)是一种常用的图像文件格式,它广泛应用于数字图像存储和传输。
TIFF文件可以存储各种图像类型,包括位图、扫描图像、矢量图像等。
TIFF格式采用了标签的方式来存储图像数据和元数据,具有很好的灵活性和可扩展性。
以下是TIFF格式的一些解析要点:1. 文件结构:TIFF文件由若干个基本的数据记录组成,每个记录称为一个IFD(Image File Directory)。
IFD记录了该图像的相关信息,如图像的宽度、高度、色彩模式、像素位深度等。
一个TIFF文件可以包含一个或多个IFD。
2. 数据存储:TIFF文件中的图像数据可以以多种方式存储,包括无压缩的、压缩的和多帧的存储方式。
常见的无压缩存储方式包括每像素位图(如8位灰度图像、24位彩色图像)和颜色分量平面存储。
TIFF支持的压缩方式有LZW、JPEG、Deflate等。
3. 标签和标签类型:每个IFD中包含了一系列的标签,用于描述图像的各种属性和附加信息。
每个标签具有唯一的标签号,对应不同的数据类型,如整数、浮点数、字符串等。
标签描述了图像的关键信息,例如分辨率、图像压缩方式、颜色空间、拍摄设备信息等。
4. 元数据:TIFF格式支持存储丰富的元数据信息,如EXIF (Exchangeable Image File Format)数据、ICC(International Color Consortium)配置文件和XMP(Extensible Metadata Platform)元数据等。
这些元数据可以包含有关图像的拍摄日期、设备型号、拍摄参数、版权信息等。
总的来说,TIFF格式是一种功能强大且灵活的图像文件格式,适用于存储和传输各种类型的图像数据。
通过解析TIFF文件中的IFD和标签,可以获取图像的关键属性和元数据信息。
位图常见的格式

位图常见的格式位图图像(BitmapImage)是一种由矢量图像转换而成的用来在计算机屏幕上显示静态图像的格式。
位图图像可以存储为不同的文件格式,其中最常见的格式包括BMP,GIF,JPEG,PCX,PNG,TIFF等。
这些文件格式有一些共同的特征,也有一些不同的特征。
BMP(bits-per-pixel)文件格式是最常见的位图图像格式。
该格式的特征是每一个像素都可以被描述为精确的位深度,即每一个像素点都可以用计算机中的位来表示。
不同的BMP文件一般有不同的位深度,如1位、4位、8位、24位等。
BMP文件格式支持多种色彩系统,如调色板(Palette)、RGB(Red、Green、Blue)等。
GIF(Graphic Interchange Format)文件格式是一种可以存储256个调色板颜色索引的图像文件格式。
GIF是一种使用LZW (Lempel-Ziv-Welch)算法进行压缩的图像文件格式,因此其文件大小一般较小,这使其在网络上传播和保存上具有优势。
GIF文件格式一般用于制作简单的动画效果,使其在网站页面上产生点缀效果。
JPEG(Joint Photographic Experts Group)文件格式是图像文件格式中最流行的一种,它可以存储将近16.7万色彩索引,它可以将一幅图像压缩到更小的文件大小,这使其在网络上传播十分方便。
JPEG文件格式可以在没有失真的情况下压缩至一半左右的图像大小,这使得它在商业上得到广泛应用。
PCX(Paintbrush eXchange)文件格式是一种常见的网络上传播的图像文件格式。
它的特征在于文件存储的是位图像素,分辨率可以达到640×480,而且可以存储256色彩索引的调色板,它支持使用调色板和RGB模式进行调色。
PNG(Portable Network Graphics)文件格式是一种新的图像文件格式,它可以支持24位位图像素,它可以完美地模拟出彩色图像。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
位图存储格式2009-08-26 02:31 BMP位图文件的存储格式摘要:本文简单介绍了位图文件的两种存储格式,并且在VC++6.0下实现了读取位图文件中的数据,用SetPixel()函数在窗口中重现图像,最后在程序中实现了一种存储格式到另一种存储格式的转换。
关键字:BMP、灰度位图、24位真彩色位图、存储格式一、前言BMP(Bitmap的缩写)图像是指文件名后缀为BMP的位图图像。
位图图像在计算机中使用很广泛,例如在windows中,记事本、写字板中的文字就是用位图图像表示出来的。
许多以其它格式存储的图像,就是在位图图像的基础上,进行优化处理后得到的,例如JPEG图像等。
在数字图像处理中,许多算法就是针对24位真彩色位图或灰度位图设计的。
因此,很有必要介绍一下位图文件的这两种存储格式。
二、24位真彩色图像存储格式把下图的24位真彩色图像格式在16位编辑器(例如VC编辑器)中打开,可以看到图像的二进制数据。
24位真彩色的二进制数据为:这是24位真彩色位图文件数据一部分。
这一部分数据包括位图文件头、位图信息头和位图阵列三部分。
(一)位图文件头位图文件头用来记录标志文件大小的一些信息,在文件中占14个字节,存储的内容如下:字节1234567891011121314000000424DCCB402000000000036000000其中:42 4D 为位图的标志,即ASCII码为BMCC B4 02 表示位图文件的总字节数,换算成十进制为(02B4CC)H=(177356)10,即这副图像的大小为177356字节。
00 00 00 00 00 为保留字节,用来存储文件大小的数据。
36 00 00 00 00 表示位图阵列的起始位置,(36)H=(54)10即54字节开始为位图阵列。
(二) 位图信息头位图信息头记录和位图相关的一些信息,在文件中占40个字节,存储的内容如下:字节12345678910111213141516000000280000001600002C010000C5000000010018000000000032000000000000120B0000120B00000000000048000000000000其中: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.SeekT oBegin();cf.Read(&bmfh,sizeof(bmfh));//读取文件头cf.Read(&bmih,sizeof(bmih));//读取文件信息头rgb = new RGBTRIPLE[bmih.biWidth*bmih.biHeight];cf.SeekT oBegin();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].rgbtRed,rgb[i*bmih.biWidth+j].r gbtGreen,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位真彩色位图的颜色信息去掉,就可以得到灰度位图。
根据不同的需要,不同的理论,有不同的去掉颜色的方法。
在本文中,仅仅在红、绿、蓝三种基本色前加权三分之一,然后在屏幕上打点显示出来,得到灰度位图图像。
如果需要存储,只需要在文件头、文件信息头后加上颜色索引表,然后再以一个字节的空间存储位图像素信息,把上述信息按顺序写到一个文件中,就得到一个灰度位图图像文件。