位图的基本格式
常用图片文件格式
常用图片文件格式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个透明层次,使得彩色图像的边缘能与任何背景平滑地融合,从而彻底地消除锯齿边缘。
Windows位图和Leptonica位图的转换
Windows位图和Leptonica位图的转换在进行图像处理时,常常需要在不同的处理库之间进行数据转换。
在 Windows 平台上,常见的位图格式是 BMP 格式,而在 Leptonica 图像处理库中,常见的位图格式是PixImage 类型。
因此,在进行图像处理时,需要将 Windows 位图转换为 Leptonica 位图。
下面介绍一下如何进行转换。
1. Windows 位图Windows 位图是一种经典的位图格式,它的文件扩展名一般为 BMP。
BMP 格式是一种无压缩的位图格式,它可以保存 24 位色和 32 位色的位图数据。
BMP 格式的位图数据保存方式为从左到右,从上到下,依次保存每个像素点的颜色值:红色分量、绿色分量和蓝色分量。
BMP 格式的文件头信息包含位图数据的宽度、高度、像素位数等基本信息。
2. Leptonica 位图Leptonica 是一种常用的开源图像处理库,它的位图格式是 PixImage 类型。
PixImage 类型是 Leptonica 中的图像处理结构体类型,它包含着位图的宽度、高度、每行像素对齐方式、每像素占用位数、指针等信息。
Windows 位图和 Leptonica 位图之间的数据转换,需要利用 Leptonica 中的相关函数进行操作。
在 Leptonica 中,可以使用以下函数将 Windows 位图转换为 Leptonica位图:a. pixCreateFromHBITMAP这个函数将输入的 HBITMAP(在 Windows 平台上定义的位图句柄类型)转换为PixImage 类型的位图。
例如,以下代码实现从文件中加载一个 BMP 格式的图像,并将它转换为 PixImage 类型的位图:```HBITMAP hBmp = (HBITMAP)LoadImage(NULL, szFileName, IMAGE_BITMAP, 0, 0,LR_LOADFROMFILE);PIX *pix = pixCreateFromHBITMAP((void *)hBmp, NULL);```b. pixRead```PIX *pix = pixRead(szFileName);```除了从文件中读取和将 HBITMAP 类型的位图转换为 PixImage 类型的位图之外,还有一种常见的转换方式是,将 Windows 位图和 Leptonica 位图中的内存数据进行转换。
pwg格式bitmap生成方法
pwg格式bitmap生成方法1.简介在图像处理中,p wg格式是一种常用的位图图像格式。
本文将介绍p w g格式b it ma p生成方法,包括如何创建和修改pw g格式的图像。
通过学习本文,您将了解p wg格式bi tm a p的基本原理,以及如何应用它们在图像处理中。
2. pw g格式bitma p概述p w g格式b it ma p是一种用于表示图像的文件格式,它由像素点阵组成,每个像素点都有不同的颜色值。
p wg格式bi tm ap是一种通用的图像格式,广泛应用于各种领域,如数字图像处理、计算机视觉和图形设计等。
3.pw g格式bitma p生成方法3.1创建p w g格式b i t m a p要创建p wg格式bi tm a p,您可以按照以下步骤进行操作:1.准备图像数据:收集您要包含在p w g格式bi tm ap中的像素点数据。
您可以使用图像编辑软件或编程语言来生成像素点数据。
2.新建pw g格式b it m ap文件:使用任意文本编辑器创建一个新的文件,文件后缀名通常为.pw g。
3.添加头部信息:在p wg文件的开头添加必要的头部信息,包括图像的宽度、高度和颜色模式等。
4.写入像素数据:将像素点数据按照一定的格式写入pw g文件中。
5.保存pw g文件:保存文件,即可生成一个pw g格式b it ma p。
3.2修改p w g格式b i t m a p您可以通过以下方法修改现有的p wg格式b it ma p:1.打开pw g文件:使用文本编辑器打开目标pw g文件。
2.定位要修改的像素点:查找需要修改的像素点在p wg文件中的位置。
3.修改像素点数值:根据您的需求,修改相应像素点的颜色值。
4.保存文件:保存pw g文件,更新了修改后的图像数据。
4.应用范例p w g格式b it ma p生成方法可以应用于各种图像处理场景。
以下是一些常见的应用范例:4.1图像编辑软件使用pw g格式b it ma p生成方法,图像编辑软件可以创建、编辑和保存p wg格式的图像文件。
BMP图像格式详解
BMP格式图像文件详析首先请注意所有的数值在存储上都是按“高位放高位、低位放低位的原则”,如12345678h放在存储器中就是7856 3412)。
下图是导出来的开机动画的第一张图加上文件头后的16进制数据,以此为例进行分析。
T408中的图像有点怪,图像是在电脑上看是垂直翻转的。
在分析中为了简化叙述,以一个字(两个字节为单位,如424D就是一个字)为序号单位进行,“h”表示是16进制数。
424D 4690 0000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100*1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 0000 E007 0000 1F00 0000 0000 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2......BMP文件可分为四个部分:位图文件头、位图信息头、彩色板、图像数据阵列,在上图中已用*分隔。
一、图像文件头1)1:图像文件头。
424Dh=’BM’,表示是Windows支持的BMP 格式。
2)2-3:整个文件大小。
4690 0000,为00009046h=36934。
3)4-5:保留,必须设置为0。
4)6-7:从文件开始到位图数据之间的偏移量。
4600 0000,为00000046h=70,上面的文件头就是35字=70字节。
5)8-9:位图图信息头长度。
6)10-11:位图宽度,以像素为单位。
8000 0000,为00000080h=128。
7)12-13:位图高度,以像素为单位。
9000 0000,为00000090h=144。
8)14:位图的位面数,该值总是1。
0100,为0001h=1。
二、位图信息头9)15:每个像素的位数。
BMP位图格式详解
位图格式 BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即Windows位图。
它一般由4部分组成:文件头信息块、图像描述信息块、颜色表(在真彩色模式无颜色表)和图像数据区组成。
在系统中以BMP为扩展名保存。
打开Windows的画图程序,在保存图像时,可以看到三个选项:2色位图(黑白)、16色位图、256色位图和24位位图。
现在讲解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字节表示颜色号0的颜色,接下来表示颜色号1的颜色,依此类推。
4.图像数据区颜色表接下来位是位图文件的图像数据区,在此部分记录着每点像素对应的颜色号,其记录方式也随颜色模式而定,既2色图像每点占1位;16色图像每点占4位;256色图像每点占8位;真彩色图像每点占24位。
位图常见的格式
位图常见的格式位图图像(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位位图像素,它可以完美地模拟出彩色图像。
bitmap的原理和应用
Bitmap的原理和应用什么是Bitmap?Bitmap是一种图像存储格式,也可以理解为位图。
Bitmap图像以像素点为基本单位进行存储,每个像素点的颜色值通过位图中的位进行表示。
Bitmap广泛应用于计算机图形学、计算机视觉和数字图像处理等领域。
Bitmap的原理Bitmap采用的是一种简单而高效的存储方式。
每个像素点的颜色值通过位来表示,通常是以二进制形式存储。
对于每个像素点,颜色值的每个分量使用一定的位数进行存储。
假设一个Bitmap图像的颜色深度为8位,每个像素点的颜色信息可以用8位的二进制数表示。
对于彩色图像,通常会使用RGB颜色模型,其中每个像素点的颜色由红色、绿色和蓝色三个分量组成。
假设每个颜色分量使用8位表示,那么每个像素点的颜色信息将需要3个字节来存储。
在Bitmap图像中,像素点的排列方式为矩阵形式,每行的像素点按从左到右的顺序排列,每列的行之间按从上到下的顺序排列。
这种排列方式使得Bitmap图像的像素点可以通过位置索引来访问,从而实现图像的读取和修改。
Bitmap的应用Bitmap的应用非常广泛,以下列举了一些常见的领域:1. 计算机图形学Bitmap在计算机图形学中发挥着重要的作用。
通过对位图进行像素级别的操作和修改,可以实现图像的平移、旋转、缩放、裁剪等变换。
此外,还可以通过修改位图中每个像素点的颜色值,实现图像的滤镜效果、色彩调整等操作。
2. 计算机视觉在计算机视觉领域,Bitmap用于图像的表示和处理。
通过对位图进行特征提取、图像分割、目标检测等操作,可以实现图像的识别、分析和理解。
同时,Bitmap也是图像处理算法中常用的数据结构,如边缘检测、图像增强、图像压缩等算法都可以基于Bitmap进行实现。
3. 数字图像处理Bitmap在数字图像处理中扮演着核心的角色。
通过对位图进行像素级别的操作,可以实现图像的滤波、增强、去噪等操作。
此外,Bitmap也可用于图像压缩,如JPEG压缩算法中使用的离散余弦变换(DCT)就基于位图进行操作。
bmp对齐规则
bmp对齐规则BMP(位图文件格式)对齐规则是指在存储位图数据时,每个像素占据的字节数需要按照一定的规则进行对齐。
对齐规则是为了确保内存读取和写入的效率,并且可以在定位像素数据时更加准确。
下面将详细介绍BMP对齐规则。
1. BMP文件结构BMP文件由文件头、位图信息头和像素数据组成。
文件头长度为14字节,用于描述整个文件的信息;位图信息头长度为40字节,用于描述位图的基本信息,如宽度、高度、色彩位数等;像素数据存储具体的像素颜色信息。
在像素数据的存储过程中,需要注意对齐规则。
2.像素数据对齐规则像素数据的对齐规则将像素按照行来存储,每行像素数据存储完毕后,可能需要进行对齐操作,以满足对齐要求。
2.1每行像素占据的字节数每行像素占据的字节数是根据位图的宽度和色彩位数来决定的。
色彩位数指的是每个像素可以表示颜色的位数,如24位色彩位数代表每个像素用24位存储颜色。
位图的宽度常用像素点数来表示,例如位图宽度为100个像素,色彩位数为24位。
每个像素用3字节表示。
则每行像素占据的字节数为:每行所占字节数= (像素宽度*色彩位数+ 31) / 32 * 42.2对齐字节数在计算每行像素占据的字节数后,可能需要进行对齐操作。
对齐操作要求每行像素数据的字节数必须是4的倍数,如果不满足要求,则需要进行对齐。
如果每行像素占据的字节数已经是4的倍数,则无需对齐。
如果每行像素占据的字节数不是4的倍数,需要补齐字节数,计算方式如下:对齐字节数= 4 - (每行所占字节数% 4)2.3字节对齐对齐字节数计算完成后,需要将对齐字节数添加到每行像素占据的字节数中,得到一个最终的对齐后字节数。
2.4总结在存储位图数据时,根据位图的宽度和色彩位数计算每行像素占据的字节数,然后,根据对齐字节数进行对齐操作,得到最终的对齐后字节数。
这样,每行像素数据存储完成后,下一行像素数据将从对齐后的位置开始存储,确保像素数据存储的连续性和准确性。
常见的位图格式有( )。
常见的位图格式有( )。
bmp文件bmp(bitmap的缩写)文件格式是windows本身的位图文件格式,所谓本身是指windows内部存储位图即采用这种格式。
一个bmp格式的文件通常有bmp的扩展名,但有一些是以.rle为扩展名的,rle的意思是行程长度编码(runlengthencoding)。
这样的文件意味着其使用的数据压缩方法是.bmp格式文件支持的两种rle方法中的一种。
pcx文件pcx是在pc上成为位图文件存储标准的第一种图像文件格式。
它最早出现在zsoft公司的paintbrush软件包中,在80年代早期授权给微软与其产品捆绑发行,而后转变为microsoftpaintbrush,并成为windows的一部分。
虽然使用这种格式的人在减少,但这种带有pcx扩展名的文件在今天仍是十分常见的。
tiff文件pcx格式是所有位图文件格式中最简单的,而tiff则是最难的一种。
tiff文件含有tif的扩展名。
它以8字节长的图像文件头开始(ifh),这个文件头中最重要的成员是一个指向名为图像文件目录(ifd)的数据结构的指针。
ifd是一个名为标记(tag)的用于区分一个或多个可变长度数据块的表,标记中含有关于图像的信息。
tiff 文件格式定义70多种不同类型的标记,有的用来存放以像素为单位的图像宽度和高度,有的用来存放色表(如果需要的话),当然还必须有用来存放位图数据的标记,一个tiff格式文件完全为它的标记所决定,而且这种文件结构极易扩展,因为你要附加一些特征只需增加一些额外的标记。
gif文件当许多图像方面的权威一想到lzw的时候,他们也会想到gif (graph icsinterchange format,读作jiff)这是一种常用的跨平台的位图文件格式,最初为compuserve公司所创。
gif文件通常带有.gif的扩展名,而且在compuseve上大量存在。
png文件png(portable network graphic,发音做ping)文件格式是作为gif的替代品开发的,它能够避免使用gif文件所遇到的常见问题。
位图文件(BMP)格式分析以及程序实现
inf.read((char*)&header, sizeof(header));if(header.bfType != 0x4D42)return false;这个很简单,没有什么好说的。
2、加载位图信息头//Load the image information headerBITMAPINFOHEADER infoheader;memset(&infoheader, 0, sizeof(infoheader));inf.read((char*)&infoheader, sizeof(infoheader));m_iImageWidth = infoheader.biWidth;m_iImageHeight = infoheader.biHeight;m_iBitsPerPixel = infoheader.biBitCount;这里我们得到了3各重要的图形属性:宽,高,以及每个像素颜色所占用的位数。
3、行对齐由于Windows在进行行扫描的时候最小的单位为4个字节,所以当图片宽X 每个像素的字节数!= 4的整数倍时要在每行的后面补上缺少的字节,以0填充(一般来说当图像宽度为2的幂时不需要对齐)。
位图文件里的数据在写入的时候已经进行了行对齐,也就是说加载的时候不需要再做行对齐。
但是这样一来图片数据的长度就不是:宽X 高X 每个像素的字节数了,我们需要通过下面的方法计算正确的数据长度://Calculate the image data sizeint iLineByteCnt = (((m_iImageWidth*m_iBitsPerPixel) + 31) >> 5) << 2;m_iImageDataSize = iLineByteCnt * m_iImageHeight;4、加载图片数据对于24位和32位的位图文件,位图数据的偏移量为sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER),也就是说现在我们可以直接读取图像数据了。
常见的图片格式及其特点
常见的格式及其特点一、BMP格式BMP是英文B itmap(位图)的简写,它是Windo ws操作系统中的标准图像文件格式,能够被多种Wi ndows应用程序所支持,优点:BMP 支持 1 位到 24 位颜色深度。
包含的图像信息较丰富,与现有Windows程序(尤其是较旧的程序)广泛兼容。
缺点:BMP 不支持压缩,占用磁盘空间过大。
BMP 文件不受 Web 浏览器支持。
二、GIF格式GIF 图片以 8 位颜色或 256 色存储单个光栅图像数据或多个光栅图像数据。
GIF 图片支持透明度、压缩、交错和多图像图片(动画 GIF)。
主要用于网页编辑方面。
优点:GIF 广泛支持 Interne t 标准。
支持无损耗压缩和透明度。
动画 GIF 很流行,易于使用许多GIF 动画程序创建。
缺点:GIF 只支持 256 色调色板,因此,详细的图片和写实摄影图像会丢失颜色信息,而看起来却是经过调色的。
三、JPEG格式JPEG也是常见的一种图像格式,它由联合照片专家组(Joint Photogr aphicExperts Group)开发并以命名为"ISO 10918-1",JPEG仅仅是一种俗称而已。
JPEG文件的扩展名为.jpg或.jpeg,优点:摄影作品或写实作品支持高级压缩。
利用可变的压缩比可以控制文件大小。
支持交错(对于渐近式 JPEG 文件)。
JPEG 广泛支持 Interne t 标准。
缺点:有损耗压缩会使原始图片数据质量下降。
当您编辑和重新保存JPEG 文件时,JPEG 会混合原始图片数据的质量下降。
这种下降是累积性的。
JPEG 不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片。
四、TIFF标记图像文件格式TIFF 以任何颜色深度存储单个光栅图像。
矢量格式和位图格式基本概念
矢量格式和位图格式
知识点:
矢量格式与位图格式的区别及特点:
矢量图:
又称为向量图,矢量图形中的图形元素(点和线段)称为对象,每个对象都是一个单独的个体,它具有大小、方向、轮廓、颜色和屏幕位置等属性。
特点:矢量图形能重现清晰的轮廓,线条非常光滑、且具有良好的缩放性,可任意将这些图形缩小、放大、扭曲变形、改变颜色,而不用担心图像会产生锯齿,失量图所占空间及小,易于修改;
缺点:图形不真实生动,颜色不丰富。
无法像照片一样真实地再现这个世界的景色。
常用的矢量绘图软件:Illustrator、CorelDraw、FreeHand、AutoCAD、Flash 等。
Illustrator制作完成的矢量图用Photoshop可以直接打开,而且背景是透明的。
位图:
又称为点阵图、像素图或栅格图,图像是由一个个方形的像素(栅格)点排列组成,与图像的分辨率有关,单位面积内像素越多分辨率就越高,图像的效果就越好。
位图的单位:像素(Pixel);
特点:位图图像善于重现颜色的细微层次,能够制作出色彩和亮度变化丰富的图像,可逼真地再现这个世界
缺点:文件庞大,不能随意缩放;打印和输出的精度是有限的。
位图和矢量图格式
位图和矢量格式一、常用位图和矢量图的常用格式如下:位图格式包括j p g、G I F、P N G、B M P、P S D等五种常用位图格式。
矢量图格式包括c dr、a i、S WF、S V G、W M F、E M F、E P、D X F等8种常用矢量格式。
二、矢量图常见格式说明:1.b w它是包含各种像素信息的一种黑白图形文件格式。
2.a i它是I l l u s t r a t o r中的一种图形文件格式,也即I l l u s t r a t o r软件生成的矢量文件格式,用I l l u s t r a t o r、C o r e l D r a w、P h o t o s h o p均能打开,编辑,修改等等。
3.c dr它是C o r e l D r a w中的一种图形文件格式,是所有C o r e l D r a w应用程序中均能够使用的一种图形图像文件格式。
4.c o l它是由A u t o d e s k A n i m a t o r、A u t o d e s k A n i m a t o r P r o等程序创建的一种调色板文件格式,其中存储的是调色板中各种项目的R G B值。
5.d w g它是A u t o C A D中使用的一种图形文件格式。
6.d x b它是A u t o C A D创建的一种图形文件格式。
7.d x f它是A u t o C A D中的图形文件格式,以A S C I I方式储存图形,在表现图形的大小方面十分精确,可被C o r e l D r a w、3D S等大型软件调用编辑。
8.w mf是M i c r o s o f t Wi n d o w s中常见的一种图元文件格式,它具有文件短小、图案造型化的特点,整个图形常由各个独立的组成部分拼接而成,但其图形往往较粗糙,并且只能在M i c r o s o f t O f f i c e中调用编辑。
9.e mf是由M i c r o s o f t公司开发的Wi n d o w s32位扩展图元文件格式。
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位图图像格式简介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的方式来读取相应的数据。
位图的基本格式
第一章位图的基本格式1.1位图文件格式的产生及发展BMP图像文件格式是微软公司为其Windows环境设置的标准图像格式,而且Windows系统软件中还同时内含了一系列支持BMP图像处理的API函数,随着Windows 在世界范围内的不断普及,BMP文件格式无疑也已经成为PC机上的流行图像文件格式。
它的主要特点可以概括为:文件结构与PCX文件格式类似,每个文件只能存放一幅图像;图像数据是否采用压缩方式存放,取决于文件的大小与格式,即压缩处理成为图像文件的一个选项,用户可以根据需要进行选择。
其中,非压缩格式是BMP图像文件所采用的一种通用格式。
但是,如果用户确定将BMP文件格式压缩处理,则Windows设计了两种压缩方式:如果图像为16色模式,则采用RLE4压缩方式,若图像为256色模式,则采用RLE8压缩方式。
同时,BMP图像文件格式可以存储单色、16色、256色以及真彩色四种图像数据,其数据的排列顺序与一般文件不同,它以图像的左下角为起点存储图像,而不是以图像的左上角为起点;而且BMP图像文件格式中还存在另外一个与众不同的特点,即其调色板数据所采用的数据结构中,红、绿、蓝三种基色数据的排列顺序也恰好与其它图像文件格式相反。
总之,BMP图像文件格式拥有许多适合于Windows环境的新特色,而且随着Windows版本的不断更新,微软公司也在不断改进其BMP图像文件格式,例如:当前BMP图像文件版本中允许采用32位颜色表,而且针对32位Windows 的产生,相应的API函数也在不断地推陈出新,这些无疑都同时促成了BMP文件格式的不断风靡。
但由于BMP 文件格式只适合于Windows上的应用软件,而对于DOS环境中的各种应用软件则无法提供相应的支持手段,因此这无疑是阻碍BMP文件格式的流通程度超过PCX文件格式的一个重要因素。
1.2 位图文件的类型Windows中定义了两种位图文件类型,即一般位图文件格式与设备无关位图文件格式。
常用图片后缀格式识别常识
一、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有个小小的缺点,即不能存储超过256色的图像。
尽管如此,这种格式仍在网络上大行其道应用,这和GIF图像文件短小、下载速度快、可用许多具有同样大小的图像文件组成动画等优势是分不开的。
三、JPEG格式JPEG也是常见的一种图像格式,它由联合照片专家组(Joint Photographic Experts Group)开发并以命名为"ISO 10918-1",JPEG仅仅是一种俗称而已。
单色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,jpg,png,gif,tif)
⼏种基本图⽚格式的区别与不同(bmp,jpg,png,gif,tif)Hello,我们⼜见⾯了!本⽂为的原创博客,转载请注明出处。
位图bmp/jpg/png/gif/tif我们从⽂件的⼤⼩(从⼤到⼩)上来说吧。
bmp格式bmp(bitmap)格式,标准的位图格式,缺点是完全不压缩,体积极⼤,且⼀旦压缩有可能掉颜⾊,优点是完全⽆损保存。
运⽤不多,基本不应⽤于⽹络,但是Windows系统的标准图⽚格式,(⼏乎)所有Windows看图/编辑软件应该都⽀持。
tif/tiff格式tiff(Tag Image File Format)是⼀种压缩图⽚格式,最早由Aldus和Microsoft公司⼀起开发,七⼋⼗年代就有了,但是压缩⽐很低,所以和bmp并差不了多少,同样保真度也很⾼。
现在基本上是看不到了,⽐bmp还少。
png格式PNG(Portable Network Graphics,便捷式⽹络图形),可以做到⼏乎⽆损的压缩,⽽且压缩⽐挺⾼的,⼤概是Bmp的10⼏或⼏⼗分之⼀吧,质量很⾼,⽀持透明,90年代出现,⾄今⽤途⼴泛,常⽤于Internet,和jpg和gif都是⽹络图⽚格式。
⼩编我个⼈最喜欢的图⽚格式。
jpg/jpeg格式JPEG格式由联合图像专家组(Joint Photographic Experts Group)开发,JPEG是常见的⼀种图像格式,。
JPEG⽂件的扩展名为.jpg或.jpeg,它⽤有损压缩⽅式去除冗余的图像和彩⾊数据,在获得极⾼的压缩率的同时能展现⼗分丰富⽣动的图像,即可以⽤较少的磁盘空间得到较好的图⽚质量(但稍逊⾊于png)。
gif格式GIF的全称是Graphics Interchange Format,图形交换格式,⽤于以HTML的⽅式显⽰索引彩⾊图像,在因特⽹和其他在线服务系统上得到⼴泛应⽤。
GIF是⼀种公⽤的图像⽂件格式标准,版权归Compu Serve公司所有。
压缩率⾮常⾼,但质量实在是说不出⼝啊。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章位图的基本格式1.1位图文件格式的产生及发展BMP图像文件格式是微软公司为其Windows环境设置的标准图像格式,而且Windows系统软件中还同时内含了一系列支持BMP图像处理的API函数,随着Windows 在世界范围内的不断普及,BMP文件格式无疑也已经成为PC机上的流行图像文件格式。
它的主要特点可以概括为:文件结构与PCX文件格式类似,每个文件只能存放一幅图像;图像数据是否采用压缩方式存放,取决于文件的大小与格式,即压缩处理成为图像文件的一个选项,用户可以根据需要进行选择。
其中,非压缩格式是BMP图像文件所采用的一种通用格式。
但是,如果用户确定将BMP文件格式压缩处理,则Windows设计了两种压缩方式:如果图像为16色模式,则采用RLE4压缩方式,若图像为256色模式,则采用RLE8压缩方式。
同时,BMP图像文件格式可以存储单色、16色、256色以及真彩色四种图像数据,其数据的排列顺序与一般文件不同,它以图像的左下角为起点存储图像,而不是以图像的左上角为起点;而且BMP图像文件格式中还存在另外一个与众不同的特点,即其调色板数据所采用的数据结构中,红、绿、蓝三种基色数据的排列顺序也恰好与其它图像文件格式相反。
总之,BMP图像文件格式拥有许多适合于Windows环境的新特色,而且随着Windows版本的不断更新,微软公司也在不断改进其BMP图像文件格式,例如:当前BMP图像文件版本中允许采用32位颜色表,而且针对32位Windows 的产生,相应的API函数也在不断地推陈出新,这些无疑都同时促成了BMP文件格式的不断风靡。
但由于BMP 文件格式只适合于Windows上的应用软件,而对于DOS环境中的各种应用软件则无法提供相应的支持手段,因此这无疑是阻碍BMP文件格式的流通程度超过PCX文件格式的一个重要因素。
1.2 位图文件的类型Windows中定义了两种位图文件类型,即一般位图文件格式与设备无关位图文件格式。
其中,由于设备无关位图(DIB)文件格式具有更强的灵活性与完整的图像数据、压缩方式等定义。
BMP图像文件的结构可以分为如下三个部分:文件头、调色板数据以及图像数据。
其中文件头的长度为固定值54个字节;调色板数据对所有不超过256色的图像模式都需要进行设置,即使是单色图像模式也不例外,但是对于真彩色图像模式,其对应的BMP文件结构中却不存在相应调色板数据的设置信息;图像数据既可以采用一定的压缩算法进行处理,也可以不必对图像数据进行压缩处理,这不仅与图像文件的大小相关,而且也与对应的图像处理软件是否支持经过压缩处理的BMP图像文件相关。
以下将分别介绍BMP图像文件结构中的这三个重要组成部分。
特别值得注意的是:BMP 图像文件结构设计得相当简单,这无疑有利于图像文件的处理速度,但是同时也使得BMP图像文件格式具有一定的局限性,即一个BMP图像文件只能存储一幅图像。
1.3 BMP文件格式的结构定义BMP图像文件的文件头定义Windows中将BMP图像文件的文件头分成两个数据结构,其中一个数据结构中包含BMP文件的类型、大小和打印格式等信息,称为BITMAPFILEHEADER;另外一个数据结构中则包含BMP文件的尺寸定义等信息,称为BITMAPINFOHEADER。
如果图像文件还需要调色板数据,则将其存放在文件头信息之后。
BITMAPFIEHEADER数据结构在Windows.h中的定义为:typedef structure tagBITMAPFILEHEADER{WORD bfType;DWORD bfSize:WORD bfReserved1;WORD bfReserved2:DWORD bfOffBits:}BITMAPFILEHEADER;其中,bfType在图像文件存储空间中的数据地址为0,数据类型unsigned char,内容为固定值“BM”,用于标志文件格式,表示该图像文件为BMP文件。
bfSize 的数据地址为2,类型unsigned long,它以字节为单位,定义位图文件的大小。
BfReserved1与bfReserved2的数据地址分别为6和8,数据类型则都为unsigned int,二者都是BMP文件的保留字,没有任何意义,其值必须为0.bfOffBits的数据地址为10,数据类型为unsigned long,它以字节为单位,指示图像数据在文件内的起始地址,即图像数据针对文件头的偏移量。
BITMAPINFOHEADER数据结构用于说明位图的大小,其定义为:type structure tagBITMAPINFOHEADER{DWORD biSize:DWORD biWidth;DWORD biHeight;WORD biPlanes:WORD biBitCount:DWORD biCompression;DWORD biSizelmage;DWORD biXPelsPerMeter:DWORD biYPelsPerMeter:DWORD biClrUsed;DWORD biClrlmportant;}BITMAPINFOHEADER;其中,biSize的数据地址为14,数据类型为unsigned long,它以字节为单位指定数据结构BITMAPINFOHEADER所占用的存储容量,固定值为40。
biWidth与biHeight的数据地址分别为18和22,数据类型都是unsigned long,它们分别以像素为单位,给出该BMP文件所描述位图的宽度与高度。
若biHeight 的取值为正数,则表明位图为bottom—up类型的DIB位图,而且位图原点为左下角。
若biHeight的取值为负数,则表明位图为top—down类型的DIB位图而且位图原点为左上角。
注意:一般位图定义中,这两个字段的取值必须为正数。
biPlanes的数据地址为26,类型为unsigned int,它代表目标设备的平面数必须为1。
biBitCount的数据地址为28,类型为unsigned int,它确定每个像素所需要的位数。
当图像为单色时,该字段的取值为1;当图像为16色时,该字段的取值为4;当图像为256 色时,该字段的取值为8;当图像为真彩色时,该字段的取值为24。
biCompression的数据地址为30,类型为unsigned long,它代表bottom—up 类型位图的压缩类型(注意:top—down类型位图不能进行压缩处理),其可能取值及其含义分别为:若该字段的取值为BI—RGB,则表示文件内的图像数据没有经过压缩处理;若该字段的取值为BI—RLE8,则表示所压缩的图像数据是256色,采用的压缩方法是RLE8;若该字段的取值为BI—RLE4,则表示所压缩的图像数据是16色,采用的压缩方法是RLE4;若该字段的取值为BI—BITFIELDS,则表明图像文件内的数据没有经过压缩处理,而且颜色表由分别表示每个像素点的红、绿、蓝三原色的双字组成。
注意:BMP文件格式在处理单色或者真彩色图像时,不论图像数据多么庞大,都不对图像数据进行任何压缩处理。
biSizelmage的数据地址为34,类型为unsigned long,它以字节为单位,给出该BMP内图像数据占用的空间大小。
若图像文件描述BI—RGB位图,则该字段的值必须设置为0。
biXPelsPerMeter字段与biYPelsPerMeter字段的数据地址分别为38与42,类型都是unsigned long,它们分别以每米像素数为单位,给出位图目的设备水平以及垂直方向的分辨率;其中,应用程序可以根据biXPelsPerMeter字段的值,从源位图组中选择与当前设备特点最匹配的位图。
biClrUsed的数据地址为46,类型为unsigned long,给出位图实际使用的颜色表中的颜色变址数。
如果该字段的取值为0,则代表本位图使用了biBitCount 字段值所代表的最大颜色值,其中biBitCount字段的取值与biCompression所指定的压缩方法相关。
例如:如果图像为16色,而该字段的取值为10,则代表本位图共使用了12种颜色;如果该字段的取值非零,而且biBitCount字段的取值小于16,则该字段指定图像或者设备驱动器存取的实际颜色数。
若biBitCount 字段的取值大于或者等于16,则该字段指定使Windows系统调色板达到最优性能的颜色表大小。
biClrlmportant的数据地址为50,数据类型为unsigned long,它给出位图显示过程中重要颜色的变址数。
若该字段的取值为0,则表示所有使用的颜色都是重要颜色。
如果位图的描述还需要调色板数据,则应该在BMP文件头之后定义一个颜色表,它包含若干个表项。
其中,每一个表项定义了一种颜色,Windows 将其定义为如下的RGBQUAD结构:typedef tagRGBQUAD{BYTE rgbBlue;BYTE rgbGreen;BYTE rgbRed;BYTE rgbReserved;}RGBQUAD;注意:RGBQUAD数据结构中,增加了一个保留字段rgbReserved,它不代表任何意义,必须取固定值00同时,RGBQUAD结构定义的颜色值中,红色、绿色与蓝色的排列顺序与一般图像文件的颜色数据排列顺序恰好相反,即:蓝色的亮度由rgbBlue字段定义;绿色的亮度由rgbGreen字段定义;红色的亮度由rgbRed字段定义。
若位图中某个像素点的颜色描述为“00,00,FF,00”,则表示该点的颜色为纯红色,而不是纯蓝色。
综上,在DIB位图文件组成中,紧随BITMAPFILEHEADER结构其后的数据结构为BITMAPINFO,两者共同构成完整的位图文件。
Windows将BITMAPINFO结构定义为:typedef structure tagBITMAPINFO{BITMAPINFOHEADER bmiHeader:RGBQUAD bmiColor[1];}BITMAPINFO;其中,bmiHeader字段指向包含位图颜色格式以及大小定义的BITMAPHEADERINFO结构。
bmiCo1or[1]字段指向RGBQUAD结构数组或者定义位图颜色值的双字数据结构,它定义了BMP图像文件的颜色表,它包含多少个表项是由BITMAPINFOHEADER数据结构中的biBitCount字段定义的:若该字段的取值为1,则颜色表中共包含两个表项;若该字段的取值为4,则颜色表中共包含16个表项;若该字段的取值为8,则颜色表中共包含256个表项;若该字段的取值为16,而且BITMAPINFOHEADER结构定义中指定bmiColors字段的取值为BI_RGB,则颜色表中的表项为空,位图阵列中每个字代表一个像素,字中每5位上的值代表该像素点一种基色的亮度,其中最低5位代表蓝色亮度,依次为绿色与红色,字的最高位没有任何意义。