bmp图像文件格式

2024-04-10

bmp图像文件格式(精选6篇)

篇1: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字节

件头 存储位图文件通用信息

仅在读取文件时有用

存储位图详固定(存在7种DIB头 否 细信息及像不同版本)

素格式

紧接在位图文件头后

3或4 DWORD附加位定义像素格是(12或16字掩码 式

节)

仅在DIB头是BITMAPINFOHEADER时存在

见调色板 备可变

注 定义图像数

据(像素数色深≤ 8时不能省略 组)所用颜色 填充区是 可变

A

结构体对齐 位图文件头中像素数组偏移量的产物

像素数否 可变

组 定义实际的像素数值 像素数据在DIB头和附加位掩码中定义。像素数组中每行均以4字节对齐

填充区是 可变

B

结构体对齐

DIB头中ICC色彩特性数据偏移量的产物

ICC色彩特性是 可变 数据

定义色彩特性 可以包含外部文件路径,由该文件来定义色彩特性

Remark:像素数组每行均以4字节对齐,这会影响我们怎么读取像素数据。在n≤ 8时,调色板是不可忽略的,这对于我们找到像素头是很重要的。(其他参数同样会影响我们找到像素头)

典型的文件格式

 位图头:保存位图文件的总体信息  位图信息(DIB头):保存位图文件的详细信息  调色板:保存所用颜色的定义  位图数据:保存实际像素数据

这是标准位图的文件格式,其他的一些位图图像可能会有区别。

A 位图头(占用14个字节)

 字节 #0-1 保存文件标识符,典型的为BM(存储数据 42 4D 代表的是B和M的ascii码)

 字节 #2-5 保存文件大小

 字节 #6-9 是保留部分,留作扩展

 字节 #10-13 保存实际像素数据的起始位置(比如,36 00 00 00表示从第36H(54)字节开始为像素数据)

B 位图信息(占用40个字节,从第15个字节开始) #14-17 定义以下用来描述影像的区块大小  #18-21 保存水平像素个数  #22-25 保存竖直像素个数  #26-27 保存所用彩色位面个数  #28-29 每个像素位数(比如8位、24位)

 #30-33 定义压缩算法。允许值是0,、1、2、3、4、5;0为没有压缩,大多数位图是不压缩的

 #34-37 保存图像大小,不要和文件大小混淆  #38-41 水平方向分辨率  #42-45 竖直方向分辨率  #46-49 保存所用颜色数目  #50-53 保存所用重要颜色数目

C 调色板(占用4*2n字节数,n为位深)典型的位图文件使用RGB模型。

调色板,又叫颜色查找表,它包含了文件所要使用的颜色数。

对于一个只有16色的图像,调色板只要包括16个条目对应这16中颜色就行了。每一个条目包含4个字节:其中三个分别表示R、G、B三种颜色分量,第四个字节为保留字节(一般设为0)。

下面粘贴一段我在网上找到的关于调色板详细的介绍:

******************************************************************************* *******************************************************************************

调色板

调色板:调色板是特定图片可以使用的颜色列表。不同的图片文件格式具有不同的最大颜色数目。如果您的图片包含的颜色多于特定图片格式中提供的颜色,则多出的颜色会被调色板中的颜色替换。生成图像中的颜色可能看起来是扭曲的。这称为“调色板效果”。

我们先来说说三元色RGB概念。我们知道,自然界中的所有颜色都可以由红,绿,蓝(R,G,B)组合而成。有的颜色含有红色成分多一些,如深红;有的含有红色成分少一些,如淡红。针对含有红色成分的多少,可以分成0到255共256个等级,0级表示不含红色成分,255级表示含有100%的红色成分。同样,绿色和蓝色也被分成256级。这种分级的概念被称作量化。这样,根据红,绿,蓝各种不同的组合我们就能表示出

256*256*256,约1千6百万种颜色。这么多颜色对于我们人眼来已经足够了。下表是常见的一些颜色的RGB组合值。

RGB 25500 00255 02550 2552550 2550255 0255255 255255255 000 128128128

你大概已经明白了,当一幅图中每个象素赋予不同的RGB值时,就能呈现出五彩缤纷的颜色了,这样就形成了彩色图。对,是这样的,但实际上的做法还有些差别。让我们来看看下面的例子。

有一个长宽各为200个象素,颜色数为16色的彩色图,每一个象素都用R,G,B三个分量表示,因为每个分量有256个级别,要用8位(bit),即一个字节(byte)来表示,所以每个象素需要用3个字节。整个图象要用200*200*3,约120k字节,可不是一个小数目呀!如果我们用下面的方法,就能省的多。

因为是一个16色图,也就是说这幅图中最多只有16种颜色,我们可以用一个表:表中的每一行记录一种颜色的R,G,B值。这样当我们表示一个象素的颜色时,只需要指出该颜色是在第几行,即该颜色在表中的索引值。举个例子,如果表的第0行为255,0,0(红色),那么当某个象素为色时,只需要标明0即可。让我们再来计算一下:16种状态可以用4位(bit)表示,所以一个象素要用半个字节。整个图象要用200*2 00*0.5,约20k字节,再加上表占用的字节为3*16=48字节.整个占用的字节数约为前面的1/6,省很多吧。这张RGB的表,即是我们常说的调色板(Palette),另一种叫法是颜色查找表LUT(LookUpTable),似乎更确切一些。Windows位图中便用到了调色板技术.其实是不光是Windows位图,许多图象文件格式如pcx,tif,gif等都用到了。所以很好地掌握调色板的概念是十分重要的.有一种图,它的颜色数高达256*256*256种,也就是说包含我们上述提到的R,G,B颜色表示方法中所有的颜色,这种图叫做真彩色图(TrueColor)。真彩色图并不是说一幅图包含了所有的颜色,而是说它具有显示所有颜色的能力,即最多可以包含所有的颜色。表示真彩色图时,每个象素直接用R,G,B三个分量字节表示,而不采用调色板技术,原因很明显:如果用调色板,表示一个象素也要用24位,这是因为每种颜色的

索引要用24位(因为总共有2的24次方种颜色,即调色板有2的24次方行),和直接用R,G,B三个分量表示用的字节数一样,不但没有任何便宜,还要加上一个256*256*256*3个字节的大调色板。所以真彩色图直接用R,G,B三个分量表示,它又叫做24位色图。

************************************************************************************************************************************************************** D 位图数据

这部分逐个像素表示图像。像素是从下到上、从左到右保存的。像素每行均以4个字节对齐,如果字节数不是4的倍数,通常以空字节补齐。

范例: 有5*5的图片(一个像素只占一个字节的情况),存储时就是 xxxxx000;xxxxx000;xxxxx000;xxxxx000;xxxxx000。X是图片中实际有用的像素数据,0是填充的字节。

******************************************************************************* *******************************************************************************

灰度位图存储格式

灰度位图的存储格式与24位真彩色位图的存储格式基本相同。唯一的差别是,灰度位图比24位真彩色位图增加了一部分:调色板(颜色索引表)。因此,灰度位图的像素阵列的起始位置不是第(36)H=54个字节,而是第(436)H=1078个字节(注:本段假设所读到的灰度图每个像素为一个字节,所以,54+4×256=1078),同时灰度位图用一个字节来表示一个像素。

灰度图

把白色与黑色之间按对数关系分为若干等级,称为灰度。灰度分为256阶。用灰度表示的图像称作灰度图。

除了常见的卫星图像、航空照片外,许多地球物理观测数据也以灰度表示。以位场图像为例,把位场表示为灰度图,需要将位场观测值灰度量化,即将场的变化范围转换成256阶的灰度范围。由于位场的动态变化范围非常大,磁场可达数万个纳特,重力场也可能在数百个重力单位内变化,所以在显示为图像前通常需要对位场观测值进行拉伸或压缩。[1]

如何把RGB真彩图转换为灰度图

什么叫灰度图?任何颜色都有红、绿、蓝三原色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:

1.浮点算法:Gray=R*0.3+G*0.59+B*0.11(根据人眼的颜色敏感性加的权,对绿色最敏感,蓝色最不敏感)

2.整数方法:Gray=(R*30+G*59+B*11)/100

3.移位方法:Gray =(R*76+G*151+B*28)>>8;

4.平均值法:Gray=(R+G+B)/3;

5.仅取绿色:Gray=G;

通过上述任一种方法求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了。

篇2:bmp图像文件格式

1.PSD格式

PSD格式是Photoshop的专用格式,能保存图像数据的每一个细小部分,包括像素信息、图层信息、通道信息、蒙版信息、色彩模式信息,所以PSD格式的文件较大。而其中的一些内容在转存为其他格式时将会丢失,并且在储存为其他格式的文件时,有时会合并图像中的各图层及附加的蒙版信息,当再次编辑时会产生不少麻烦。因此,最好再备份一个PSD格式的文件后再进行格式转换。

2.TIFF格式

TIFF格式是一种通用的图像文件格式,是除PSD格式外唯一能存储多个通道的文件格式。几乎所有的扫描仪和多数图像软件都支持该格式。该种格式支持RGB、CMYK、Lab和灰度等色彩模式,它包含有非压缩方式和LZW压缩方式两种。

3.JPEG格式

JPEG格式也是比较常用的图像格式,压缩比例可大可小,被大多数的图形处理软件所支持。JPEG格式的图像还被广泛应用于网页的制作。该格式还支持CMYK、RGB和灰度色彩模式,但不支持Alpha通道。

4.BMP格式

BMP格式是标准的Windows及OS/2的图像文件格式,是Photoshop中最常用的位图格式。此种格式在保存文件时几乎不经过压缩,因此它的文件体积较大,占用的磁盘空间也较大。此种存储格式支持RGB、灰度、索引、位图等色彩模式,但不支持 Alpha通道。它是Windows环境下最不容易出错的文件保存格式。

5.GIF格式

GIF格式是由CompuServe公司制定的,能保存背景透明化的图像形式,但只能处理256种色彩,常用于网络传输,其传输速度要比其他格式的文件快很多,并且可以将多张图像存储为一个文件形成动画效果。

6.PNG格式

PNG格式是CompuServe公司开发出来的格式,广泛应用于网络图像的编辑。它不同于GIF格式图像,除了能保存256色,还可以保存24位的真彩色图像,具有支持透明背景和消除锯齿边缘的功能,可在不失真的情况下进行压缩保存图像。在不久将来,PNG格式将会是未来网页中使用的一种标准图像格式。

PNG格式文件在RGB和灰度模式下支持Alpha通道,但是在索引颜色和位图模式下,不支持Alpha通道。

7.EPS格式

EPS格式为压缩的PostScript格式,可用于绘图或者排版,它最大的优点是可以在排版软件中以低分辨率预览,打印或者出胶片时以高分辨率输出,可以达到效果和图像输出质量两不耽误。EPS格式支持Photoshop里所有的颜色模式,其中在位图模式下还可以支持透明,并可以用来存储点阵图和向量图形。但不支持Alpha通道。

8.PDF格式

篇3:基于JPEG图像文件格式的研究

图像和动画的存储方式是一个很重要的问题。幸好有了数据压缩,有了JPEG等多种压缩存储图像的文件格式,我们今天才能够拿着小小的一个存储器,却存上许多张色彩鲜艳的图片。如果没有图像压缩算法,也许我们的多媒体时代就会晚到来许多年。JPEG是联合图象专家组(Joint Picture Expert Group)的英文缩写,是国际标准化组织(ISO)和CCITT联合制定的静态图象的压缩编码标准。和相同图象质量的其它常用文件格式(如GIF,TIFF)相比,JPEG是目前静态图象中压缩比最高的。正是由于JPEG的高压缩比,使得它广泛地应用于多媒体和网络程序中,如HTML语法中选用的图象格式之一就是JPEG。这是显然的,因为网络的带宽非常宝贵,选用一种高压缩比的文件格式是十分必要的。

1 JPEG文件格式概述

JPEG图像存储格式一个比较成熟的图像有损压缩格式,虽然一个图片经过转化为JPEG图像后,一些数据会丢失,但是,人眼是很不容易分辨出来这种差别的。也就是说,JPEG图像存储格式既满足了人眼对色彩和分辨率的要求,又适当的去除了图像中很难被人眼所分辨出的色彩,在图像的清晰与大小中JPEG找到了一个很好的平衡点。虽然图像转化为JPEG格式会减小很多,但是并不是文件就变得简单了,相反,JPEG文件的格式是比较复杂的。不经过认真地分析,是不容易弄懂它的。

1.1 JPEG文件的存储方式

JPEG文件的格式是分为一个一个的段来存储的(但并不是全部都是段),段的多少和长度并不是一定的。只要包含了足够的信息,JPEG文件就能够被打开。JPEG文件的每个段都一定包含两部分,一个是段的标识,它由两个字节构成:第一个字节是十六进制0xFF,第二个字节对于不同的段,这个值是不同的。紧接着的两个字节存放的是这个段的长度(除了前面的两个字节0xFF和0xXX,(X表示不确定)。他们是不算到段的长度中的)。JPEG/JFIF文件格式使用Motorola格式,这种表示方法是按照高位在前低位在后的,与Intel的表示方法不同。比方说一个段的长度是0x12AB,那么它会按照0x12,0xAB的顺序存储。但是如果按照Intel的方式:高位在后低位在前的方式会存储成0xAB,0x12,这样的存储方法对于JPEG是不对的。

1.2 JPEG文件组成结构

JFIF文件格式直接使用JPEG标准为应用程序定义的许多标记,因此JFIF格式成了事实上JPEG文件交换格式标准。JPEG文件大体上可以分成以下两个部分:标记码(Tag)加压缩数据。这里详细说明标记码部分。标记码部分给出了JPEG图象的所有信息(有点类似于BMP中的头信息,但要复杂的多),如图象的宽、高、Huffman表、量化表等等。JPEG的每个标记都是由2个字节组成,其前一个字节是固定值0xFF。每个标记之前还可以添加数目不限的0xFF填充字节(fill byte)。标记码有很多,但绝大多数的JPEG文件只包含几种。下表是JPEG图像中常用的8个标记:

1.3 JPEG文件中段的介绍

(1) APP0段中主要存储的是图片的识别信息(字符串“JFIF�”)、一些分辨率的信息以及缩略图的信息。在我的实际测试中,发现并不是所有的JPEG文件都有APP0段的,有的仅是有APP2之类的其他段,但是每个文件中肯定是包含APPX的段。

(2) DQT段的内容是量化表的信息。众所周知,一个颜色可以分为RGB(红、绿、兰)三个分量,这三色光组成了我们可以见到的所有色彩。但是,在JPEG文件中,RGB色彩格式需要先转化为YUV的格式。Y分量代表了亮度信息,UV分量代表了色差信息。相比之下,人眼对于Y分量更为敏感。量化表的作用就是对于一些不需要的量进行去除,这也是JPEG有损压缩损失数据的关键。上面的输出可以看到两个量化表,一个给Y分量,另一个给UV分量。其实,他们也可以共用一个量化表。下面为8×8的亮度(Y)图象子块经过量化后的系数

3) SOF0段的内容是图像的大小信息,每个像素的位数信息,以及YUV每个分量分别得的采样信息。JPEG文件图像的编码是一个方块一个方块进行的,每块的大小为8x8大小(如果图像不是整数个方块的大小那么就对图像补齐为整数个大小)。简略地说采样信息,就是如何按组记录YUV的信息,即若干个Y方块,若干个U方块,若干个V方块经过量化的数据再次经过编码后组成一组记录,保存在SOS段结束后。

(4) DHT段的内容是最重要的,如果没有它,JPEG压缩效率就不会那么高。它内部定义的是一个Huffman表,不同的DHT段定义不同的Huffman表,有的是直流量的表,有的是交流量的表。其中直流量是经过量化后的系数表中左上角的值,直流量用直流Huffman表来单独编码的,不与块内部一同编码。交流量是经过量化后的系数表中除左上角的值之外的其余值,交流量用交流Huffman表来单独编码的。最多的Huffman表有几个呢?YUV各一个,直流交流各一个,因为YUV每个分量都有直流和交流,所以最多时,Huffman表有3x2个,也就是可以有6个DHT段。一般的JPEG文件中有4个DHT表,Y的直流和交流各一个Huffman表,UV合起来直流和交流各一个Huffman表。

(5) SOS段的内容是关于YUV每个分量的直流和交流各使用那个Huffman表来编码的。

2 RGB格式和YCbCr格式之间的转换关系

JPEG的图片使用的是YCrCb颜色模型,而不是计算机上最常用RGB。JPEG文件使用的颜色空间是CCIR 601推荐标准进行的彩色空间。在这个彩色空间中,每个分量、每个像素的电平规定为255级,用8位代码表示。从RGB转换成YCbCr空间时,使用下面的精确的转换关系:

Y = 256 * E′y

Cb = 256 * [E′Cb] + 128

Cr = 256 * [E′Cr] + 128

其中亮度电平E′y和色差电平E′Cb和E′Cr分别是CCIR 601定义的参数。由于E′y的范围是0~1,E′Cb和E′Cr的范围是-0.5~+0.5,因此Y,Cb和Cr的最大值必须要到255。于是RGB和YCbCr之间的转换关系需要按照下面的方法计算。

(1) 从RGB转换成YCbCr

YCbCr(256级)分量可直接从用8位表示的RGB分量计算得到:

Y = 0.299 R + 0.587G + 0.114 B

Cb = - 0.1687R - 0.3313G + 0.5B + 128

Cr = 0.5 R - 0.4187G - 0.0813 B + 128

注意:不是所有图像文件格式都按照R0,G0,B0,…… Rn,Gn,Bn的次序存储样本数据,在RGB文件转换成JFIF文件时需要首先验证RGB的次序。

(2) 从YCbCr转换成RGB

RGB分量可直接从YCbCr(256级)分量计算得到:

R = Y+ 1.402 (Cr-128)

G = Y - 0.34414 (Cb-128) - 0.71414 (Cr-128)

B = Y + 1.772 (Cb-128)

3 图像数据块内数据的编码

图像数据块的编码涉及到了行程编码,Huffman编码等编码方式。我们还是使用那刚才那个包含很多0的量化后的8x8的数据块来说明。把块内剩余的63个数据用行程编码来编码。经过行程编码后的数据的格式是:(x,y)。x表示的是从当前位置开始有多少个连续的零,y表示这些连续的0的后面的第一个非零的数是多少。但是为了解决存储的问题和进行进一步的压缩。最后的压缩格式变为:(x,y)z。xy占有一个字节的长度。z的长度不固定,需要根据y的值来判断。x仍代表从当前位置开始有几个连续的零,但是因为x只能占有四位的长度,也就是它的最大值是15,所以,当多于16个连续的零的时候。会用一个字节的(15,0)来代替前面的16个0,然后继续编码(注意:这时候没有z部分)。当块结束或者当前块后面剩余的都是零的时候,就用(0,0)即EOB代替(同样也是没有z部分)。前面说到z的长度不固定,在1~15的范围内。需要根据y的值来判断。y的作用简单的来说表示的是z的二进制位数(1~15),也正好是4位二进制的值能够表示的。然后,把xy合成的一个字节单独提取出来,利用DHT里面的Huffman表来进行编码。这样,编码的长度又能够被压缩了。

4 结束语

JPEG文件格式采用有损数据压缩,去除了冗余的图像和彩色数据,获得极高的压缩率的同时能展现十分丰富生动的图像。同时JPEG还是一种很灵活的格式,压缩率和图像质量都是可选的。由于JPEG优异的品质和杰出的表现,在相关领域取得了广泛的应用。目前,基于有损、无损压缩的JPEG2000格式已经诞生,它与JPEG格式相比不仅可实现无损压缩,在有损压缩方面其压缩率比JPEG高约30%左右,而且还可实现渐进传输。希望广大爱好者一起来研究、探讨…

参考文献

[1]全子一.图像信源压缩编码及信道传输理论与新技术[M].北京工业大学出版社,2006.

[2]于兆明.图像编码标准[M].人民邮电出版社,2006.3.

篇4:电子文件长期保存格式探析

一、电子文件内容、形式及常见的格式

电子文件是指在数字设备及环境中生成,以数码形式存储于磁带、磁盘、光盘等载体,依赖计算机等数字设备阅读、处理,并可在通信网络上传送的文件。它主要包括电子文书、电子信件、电子报表、电子图纸等等。按载体划分,可以把电子文件分为光盘文件、硬盘文件、软盘文件和磁带文件;以数据的表现形式为划分标准,有字符文件、表格文件、图文混排文件、数据库文件、图形文件、动态影像文件与声音文件等;以属性为划分标准,数据库文件又有FOXBASE(动态数据基地)数据库、FOXPRO(“京通”软件应用的)数据库、ACCESS(通路)数据库、ORCAL(“灵通”软件应用的)数据库等。

按电子文件的格式划分,有数字文本文件 、数字影像文件、数字图形文件、数字语音文件、数字视频文件。文本文件常见格式有XML、TXT、UOF、RTF、WPS、PDF/A、CEB、SEP;图像文件常见格式有TIFF、JPEG2000、JPEG、GIF、PNG、DjVu;音频文件常见格式有WAV、MP3、WMA、OGG Vorbis 、FLAC;视频文件常见格式有AVI、MOV、MPEG等。

二、电子文件长期保存格式选择存在的问题

选择专用媒体或是专用存储格式将来会导致数字存储问题,例如媒体格式。选择专用媒体格式存储电子文件,必须考虑将来该格式的过时问题。再例如文件格式。为了确保电子文件的长期存取,如果采用专用的文件格式,会由此增添更大的复杂性。专用软件的应用常常升级至最新版本,然而软件的功能却没有像版本变化那么明显。随着时间的过去,文件格式累积的变化更为显著,甚至危及格式逆兼容。对遗产软件的维护显得很急迫,但是存在的问题颇多。就像应用软件一样,操作系统也得定期升级,随着系统基本体系结构的发展,将来不再支持遗产软件,不对遗产软件支持就意味着产生新的安全问题的风险也在增加。

三、电子文件长期保存格式的选择标准

1、按格式种类分析

要作为文本型电子文件的归档格式,马春茂①认为应该符合下列条件:(1)应该是公开的格式,不依赖特定的系统和软件存在,能够在可以预见的时间内被正常读取;(2)应该保持文件生成时的排版格式,即使经过办公软件的不断升级,也能输出同纸质文件一样的格式;(3)应该便于数据交换、便于查找和检索;(4)应能保证电子文件在处理过程中不被篡改和窃取。

为了对数字资源实施长期保存,对保存图像格式的选择尤其重要。叶新民②认为应满足格式使用的标准化和广泛性;格式应是公开的,而非私有的,而且应公开已出版的技术资料;格式应支持元数据;格式应对存储介质无依赖性等要求。

对于数码录音的电子文件长期保存格式,张文浩③认为应支持真实性验证技术、数码音质无损、文件格式开放透明、不绑定软硬件、格式自描述、格式自包含、易于存储、格式紧凑、信息安全、代价最小等要求。

数字摄像(DV) 、数字电视(DTV) 和网络视频系统的广泛应用以及对现有模拟视频的数字化, 视频电子文件的数量和类型不断丰富。项文新等④提出从保证视频文件的原真性和档案保管利用的便捷性出发选择合适的视频电子文件归档格式,认为视频电子文件应尽可能保证视频文件的原真性。

2、综合性分析

对于长期保存人类文化遗产的档案馆、图书馆, 最关心的是数字信息的内容不得丢失。刘家真⑤针对电子文件保存格式的选择问题,认为该格式能在不同的环境下使用;应是通用的、非专用的格式;支持数据从专用格式的环境中移出;最好是标准格式;被业界或用户广泛支持;具有可扩展性;可真实完整地被用户读出并理解, 无论何时何地, 用户所查到的该文件信息都与该文件最初情况完全一致;具有自身的可证明性;具有可评价性。

档案是历史的真实记录,具有凭证价值与情报价值。李泽锋⑥认为档案数字化过程中选用电子文件格式应考虑:保持档案原貌,利于网络平台下的传输交流,具有一定的标准性,具有较好的通用性和可移植性,选用电子格式的支持软件应支持数据从专用格式中方便地移出。

为了应对电子文件长期保存的需求,Adrian Brown⑦对电子文件长期保存格式的选择标准进行了积极的探讨,认为应具备开放标准、普遍性、稳定性、对元数据支持、互操作性、可生存性、真实性、可处理性、固定显示等9个条件。

3、笔者的理解

电子文件的格式选择是由电子文件创建过程的操作要求和电子文件长期存取的要求所决定的。综合各位学者的观点后,笔者认为电子文件长期保存格式的选择标准应具有以下几点:(1)开放性。格式开放,有公开发表的相应标准和技术规范,有与产品无关的技术专家组和标准化组织支持该格式。(2)标准性。该格式被广泛使用,具有自由使用的技术规范,可转换性高,支持保存元数据。(3)稳定性。不会随着时间的推移而作重大的变更,而且新版本的格式也应该能够做到逆兼容。(4)广采性。数字格式的广采性包括个人电脑随机软件包、Web浏览器的本地化支持、数字产品格式易转换等。软件厂商对创建良好和广泛使用的格式往往要比仅仅瞄准新市场的格式具有更宽泛和更长久的支持。流行格式会尽可能多地受到软件厂商的支持,人们可能更喜欢采用。(5)软硬件平台的独立性。被多种操作系统和应用软件支持。支持多种存储技术,或与存储技术无关。当用户不能使用指定产品软件时,可使用已有的插件读取。使用与设备无关的颜色规范实现准确打印和再现,不必考虑软硬件平台。(6)真实性。电子文件的真实性要求保留“原貌”(例如字体、颜色和外观),数据迁移要求选取的文件格式能够保留文件“原貌”。(7)可利用性。要确保电子文件可读、可利用。

四、几种适于长期保存的电子文件格式

1、 PDF/A格式

PDF格式规范已经公开,并可免费获取,具有广泛的支持性。该格式具有与平台、字体无关的特点,解除了电子文件与操作系统的依赖关系,用户可以通过它的通用浏览器Adobe Reader在Windows、UNIX、Mac等任一系统平台上原版原式地读取PDF文档,不受操作系统、网络环境、应用程序的版本、字体的限制,从而从电子文件自身的角度保证了电子文件的可读性。PDF格式所具有的高度兼容性使用户可以轻松地将任何文档原版原式地转换成PDF文档,进而固化信息,使之不易更改,保持了原文档信息内容和结构的完整、真实,为不同软件生成的电子文件提供了一个可完整迁移其信息内容的统一文件格式。PDF/A-1a实现了对文档逻辑结构的保存和以自然阅读顺序保存文本。PDF/A-1b可实现对文本和附加内容的正确显示。在各国政府机构包括美国、英国、德国、新加坡、印度、澳大利亚等的电子政务领域中,PDF格式也被广泛应用。综合来说,PDF/A格式的特点是支持数字签名、格式开放、不绑定软硬件、格式自包含、格式自描述、固定显示、不包含加密、可向其他文本格式转换等。

2、TIFF格式

TIFF(标记图像文件格式)是由Aldus和Microsoft公司为桌面出版系统研制开发的一种灵活的位图图像格式,用于应用程序之间和计算机平台之间交换文件。实际上已被所有绘画、图像编辑和页面排版应用程序所支持,而且几乎所有桌面扫描仪都可以生成TIFF图像。TIFF支持多种编码方法,其中包括RGB无压缩、RLE压缩、LZW压缩、ZIP压缩、CCITT压缩等,6.0版本又增加了JPEG压缩选项。TIFF 格式由于存储图像质量高非常有利于原稿的复制。另外,所有绘画、图像编辑和页面排版应用程序以及大多数扫描仪对TIFF 格式都提供良好的支持,这使得TIFF格式成为数字图像处理的最好选择。

3、JPEG2000格式

JPEG2000于2001年正式成为国际标准。JPEG2000完全采用小波变换代替余弦变换,与JPEG相比,具备了更高的压缩比以及更多新功能。在文件大小相同的情况下,JPEG2000压缩的图像比JPEG质量更高,其压缩率比JPEG高30%左右,精度损失更小。

JPEG2000的特点是⑧:

(1)同时支持有损和无损压缩,而JPEG只能支持有损压缩。(2)能实现渐进传输,先传输图像的轮廓, 然后逐步传输数据,不断提高图像质量,让图像由朦胧到清晰显示。(3)支持对图像中细节较多或较为感兴趣的区域进行高精度的无损编码、很强的容错性、支持水印等。(4)JPEG2000的许多优点和新的功能都是建立在复杂的计算与较大的缓存基础上,因此其速度与JPEG相比要慢许多。

4、FLAC格式

FLAC 属于无损音频压缩文件格式(文件名为.flac)。⑨FLAC 格式文件较小,便于播放。OGG 计划支持FLAC,也可将FLAC 音频数据封装在OGG 传输层中,生成OGG FLAC 格式文件(文件名为.ogg)。OGG FLAC 格式文件较大(比OGG Vorbis格式文件大得多),便于传输、编辑、播放。该格式的特点是支持真实性验证技术、数码音质无损、文件格式开放透明、不绑定软硬件、文件格式自描述、格式自包、易于存储、信息安全。

5、MPEG格式

MPEG即Moving Picture Expert Group(运动图像专家组),用该编码器编码的影音文件扩展名可以是MPG、MPE、MP4、M1V、M2V等,其中M1V和M2V都表示该影音文件中不包含音频部分,只有视频部分。这种格式也流行了很长时间。未压缩的AVI格式文件经MPEG-1、MPEG-2和MEG-4等编码压缩后,图像容量大幅度缩小,画质则降低不大,而且图像质量视编码参数而定。该格式具有压缩算法公开、不绑定软硬件、易于转换等特点。

五、电子文件永久可读性问题

文件格式种类繁多,打开方式多种多样,产生它们的软硬件环境也多种多样。对于一代又一代不同系统中生成的各种格式的电子文件,必须确保人类能够阅读,否则保存就失去了应有的意义。解决该问题的办法有:(1)不断地将文件转换成当前通行的新文件格式,使之不至于因为软硬件平台的过时而无法阅读。(2)采用一定的独立于任何计算机系统的统一格式存储文件。(3)将电子文件连同生成该文件的软件及其运行该软件的操作系统和硬件一道保存起来。当然这些方法都还不是解决电子文件永久可读性问题的万全之策。我们在实践中只能在以上方法中选择损失信息较少,可行性较大的方法来作为现阶段的对策。目前,大多数人选择了第二种方法,他们舍弃了对原文件结构、格式的追求,而重点强调对原文件内容的忠实再现,在可能的范围内使用较为通用的编码格式。而对于那些特殊的,没有标准格式的电子文件采用第三种方法,暂时将其支持系统一并保存下来,等待有关标准的出台。另外,在目前电子文件数量较少的情况下,采用第一种方法也是可行的。

六、结语

如今数字技术飞速发展,数字信息的可存取性却变得非常脆弱。电子文件采用可长久存取的文件格式的优越性惠及数据创建者、数据管理者和电子档案工作者。因此,对于电子文件的格式问题,不仅需要电子文件制作者,还需要负责电子文件管理和长久存取的所有人员都特别重视,积极采取措施确保电子文件的长期存取。

注释:

①马春茂:《电子文件归档格式思考》,《北京档案》, 2007年第7期:28-30。

②叶新民:《数字资源长期保存中的图像格式选择分析》,《图书情报工作》,2006年第5期:115-117。

③张文浩:《数码录音电子文件长期保存格式研究》,《黑龙江档案》,2009年第2期:6-7。

④⑨项文新、张照余:《视频电子文件的归档格式研究》,《档案学研究》, 2006年第4期:52-56。

⑤刘家真:《文件保存格式与PDF文档》,《档案学研究》, 2002年第2期:46-51。

⑥李泽锋:《档案数字化的电子格式研究》,《档案学研究》,2004年第5期:51-55。

⑦Adrian Brown:《Selecting File Formats for Long-Term Preservation》, http://www.nationalarchives.gov.uk/documents/selecting_file_formats.pdf。

⑧尹露娟、苑津莎、郭增为:《静态图像压缩技术的研究》,《中国多媒体通信》, 2009年第7期:47-49。

篇5:Img图像文件格式解析及读取

1 Img文件格式的组织结构

1.1 Img文件格式的基本对象

Img文件格式是由一系列相互联系的节点构成, 每个节点都有自己的头文件, 节点之间通过各自的头文件联系在一起, 每个节点的头文件里分别记录着下一个节点、上一个节点、第一个子节点以及父节点的存储位置, 可以根据这些信息轻松的读取到所有的节点, 而且每个节点的头文件里还存储着各个节点数据的存储位置、数据大小、节点的结构类型等信息, 可以根据节点的结构类型轻松的读取每一个节点。每一个节点的结构类型都是不同的, 这些结构类型列表存储在文件末尾。

其中Ehfa_Header Tag是整个Img文件的头文件。Root是根节点。每一个节点的头文件都按照Ehfa_Entry的格式组织。E-hfa_Header Tag、Ehfa_Entry和Ehfa_File没有自己的头文件, 它们不是节点, 结构如下:

1) Ehfa_Header Tag

2) Ehfa_File

3) Ehfa_Entry

1.2 Img文件中节点的存储结构

通过读取Ehfa_File对象中的dictionary Ptr和整个文件流的长度可以获得Img文件中用到的所有的节点结构列表。部分结构如下:

大括号外面最后是节点存储结构的名字, 大括号内部是该节点的变量, 两个变量之间用逗好隔开, 逗号之间是变量的数量、变量的类型和变量的名称。以下结构的解释都是基于C Sharp语言的。如0:po Edms_Free IDList, 这个代表此位置存储着两个int型变量, 一个表示是Edms_Free IDList的存储位置, 另一个表示Edms_Free IDList的个数。

1.3 Img文件格式中的数据节点

Eimg_Layer节点是Img图像格式中一个最基本的节点结构, 该节点存储一个图层 (对于多波段影响而言, 一般为单个波段) 的基本信息, 在它的子节点中存储该图层的影像灰度、地理信息、投影信息、统计信息等, Eimg_Layer的结构如下:

2 IMG图像文件的读取

2.1 图像信息的读取

Img的图像信息存储在Eimg_Layer及其子文件Edms_State中。图像信息读取就是获取每个Eimg_Layer的位置, 然后遍历Eimg_Layer的所有子节点, 找到Edms_State, 按照Edms_State里面块的存储位置, 把所有的块的信息读入到数据流中。具体步骤如下:

1) 遍历Root (根节点) 的所有子节点, 通过与Ehfa_Entry (节点的头文件) 节点的type比较, 找出所有的Eimg_Layer节点, 每一个Eimg_Layer就是一个波段 (图层) 。

2) 遍历每一个Eimg_Layer节点的子节点, 找到每一个Eimg_Layer节点的Edms_State (Eimg_Layer的一个子节点) 节点的位置。

3) 文件流位置偏移到Edms_State的位置, 得到个波段的分块、压缩情况以及此图像块数据在文件中的存储位置。

4) 依次读取文件中各个图像块, 将分块图像数据重新整理成按行排列的数据流, 如果图像为压缩图像, 先对图像解压。

Img文件是以Ehfa_Header Tag开头的, 首先先按照E-hfa_Header Tag的格式读取Img文件的总的头文件 (Ehfa_Header Tag) 。依据Ehfa_Header Tag中的header Ptr读取Ehfa_File的信息。在Ehfa_File中参数root Entry Ptr、dictionary Ptr分别表示Root节点的存储位置和此Img文件中用到所有结构列表的存储位置, 结构列表的存储从dictionary Ptr开始, 一直到文件的末尾。

按照上述思路, CSharp读取Img文件图像信息的部分代码如下:

其它节点读取和此节点方法一样。

Img图像文件一个重要特点是图像的分块存储。一幅Img图像按照其行列数被分成了m块, 如512×512 (行×列) 的图像被分成了64块, 每一块的大小是64×64。块的大小根据图像的行、列数的不同而不同, 一般是64×64。

Eimg_Layer的子节点Edms_State的信息都存储在edms_state数组 (一个Edms_State数组) 中, 有多少个Eimg_Layer, 数组中就有多少个元素。每一个Edms_State中都还有一个edms_virtualblockinfo (存放Edms_Virtual Blockinfo的数组) 用来存放每一个Edms_State中的块的信息, 一个Edms_State有多少快, 此数组中就有多少元素, 每一个元素都记录了块的存储地址、块的数据大小以及压缩方式。通过这些信息, 很容易把每一个块的数据信息读入到数据流中。

2.2 基本信息的读取

Img文件中还存储着坐标信息和投影信息等一些其他的非图像信息。这些信息的读取和图像信息的读取相似。

坐标信息和投影信息在遍历Eimg_Layer节点的子节点的过程中, 找到Eprj_Spheroid和Eprj_Map Info节点, 将文件流位置移到该节点的存储位置, 然后读取坐标和投影等其他信息。对于专题图, Img数据还存储了调色板信息。调色板信息存储在类型为Edsc_Table的节点的子节点Red、Blue、Green中, RGB分量值均为0~1之间的浮点数。

3 结语

本文重点阐述了Img图像文件的格式以及基于CSharp下的读取。最后把Img图像数据格式文件的图像数据读入到了数据流中, 这些数据流可以生成位图显示出来, 也可以显示在自主开发的平台上。Img文件格式的写入就是对读取的逆过程。其中以不同的位深存储像素, 分别是怎么样来存储灰度信息的还有待研究。Img一个重要的特点就是分块存储数据, 本文可以只读取需要的数据块, 提高读取效率。

摘要:IMG文件格式是一种可存储多种类型数据、应用广泛的图像数据格式。IMG文件采用HFA结构组织数据, HFA是一种树状结构, 各种数据 (图像数据、统计数据、投影信息、地理数据等) 占据“树”的各个节点。本文详细介绍了Img文件格式的结构, Img存储信息的重要特点是分块存储, 并且提供了对Img文件读取的方法, 此方法读取效率高, 可以根据需要分块读取, 只读取需要的块信息, 大大的提高了读取速度。

关键词:节点,Img,存储列表,数据流,CSharp

参考文献

[1]朱政, 刘仁义, 刘南.Img图像数据格式分析及其超大数据量快速读取方法[J].计算机应用与研究, 2003.

篇6:到底什么是RAW格式文件?

RAW代表什么?

RAW这个名字并不像JPEG一样代表一个名称的缩写(JPEG,全称Joint Photographic Experts Group,即联合图像专家小组,是认可国际图像压缩标准的组织的名称。),在英文中,RAW意为“原始的、未经加工的”。

顾名思义,RAW格式文件由相机感光元件接收的原始图像数据组成,同时还包含文件创建时的相机设置和图像处理参数。

那么RAW格式文件和JPEG格式文件的区别是什么呢?

在拍摄照片的时候,两者是没有任何区别的。JPEG是在RAW格式的基础上形成的:相机在把图片存入存储卡之前先转换成了JPEG格式。这就意味着所有的图片设置,比如白平衡、锐化、颜色和对比度,都压缩进JPEG文件了。而如果是RAW格式的话,这些信息会和图片信息一起保存下来,而不是永久性地和图片压缩在一起。

RAW格式文件在后期处理的时候有很大优势。JPEG格式是8位文件,这就意味着它比12位或者14位的RAW文件保留的颜色信息要少。你会发现处理JPEG格式图片的时候很容易出现颜色溢出。

为什么我需要将RAW格式文件进行处理?

如果你想分享或是打印一张照片,就需要JPEG或者TIFF格式文件,而这就需要先对RAW格式文件进行处理。有两种方式可以转换RAW格式文件:既可以用相机提供的内置模式转换,也可以用特定的RAW格式转换软件。第二种方式是更好的选择,因为这种处理更多样化,也更强大。相机制造商通常会在销售单反的时候提供RAW格式转换软件,不过第三方软件比如Lightroom、Adobe Camera Raw(Photoshop的一部分)或者Capture One Pro能做出更令人满意的效果。

如果我需要处理RAW格式文件的话,那我要怎样才能在相机背屏预览图片呢?

预览通常显示的都是照片的JPEG格式。直方图也是基于JPEG格式显示的,但是原本的RAW格式文件包含更大的动态范围以及更广的曝光宽容度。本质上说,这意味着RAW格式文件比JPEG格式在高光和阴影区域能够保留更多的细节,并且你可以将过曝或者欠曝的照片拉回正常的曝光范围。

经过处理的RAW格式文件会发生什么情况呢?

在处理软件中编辑RAW格式文件时候,你对图片做出的任何调整都是“非破坏性的”——也就是说这些调整并不是永久性的改变。你的调整参数不会压缩到RAW格式文件里,而是单独作为一个文件来保存,编辑RAW文件的处理软件会单独再创建一个JPEG或者TIFF格式的图片副本。

如果RAW格式文件这么好的话,为什么还要用JPEG格式呢?

RAW格式文件比JPEG格式文件要大得多,因此会占据更多的存储空间。并且拍摄RAW格式文件时,相机的最大连拍数量会降低,而使用JPEG格式的话,图片可以先存在缓存里——这是相机在把图片存入存储卡前的临时存储区域——因此速度就要快很多。这也是为什么新闻摄影师和体育摄影师更倾向于使用JPEG格式。有些相机提供拍摄较小RAW格式文件的功能,这样能够提高最大连拍数量,但代价是图片尺寸较小。相对JPEG来说,处理RAW格式文件意味着你需要在电脑前花费更多的时间,不过通常这种花费都是值得的。

分析详解 你相机中RAW与JPEG格式的对比

当你拍摄这两种不同格式的照片时到底发生了什么。

不管你拍摄前选择的是RAW格式文件还是JPEG文件,在拍摄初期的时候这两种格式所包含的内容是一样的:由相机感光元件捕捉到的图像原始数据。两者的区别在于后续的相机处理过程。为了产生一张JPEG格式图片,相机会根据你预先选择的设置来处理这些原始数据,然后在将图像存入存储卡之前压缩这个文件。如果你拍摄的是RAW格式文件的话,相机就会略过处理的过程,直接将原始图片数据和相机参数设置单独保存为一个相对较大的文件。

RAW格式文件和JPEG格式文件有一个相同的地方:光圈、快门速度和ISO在拍摄照片的时候就会固定下来。

相机感光元件捕捉的图像原始数据是不会经过相机处理的——你需要用专门的软件来处理RAW格式文件。

RAW格式文件不是图片,而是一个同时保存了相机设置和感光元件捕捉到的图像原始数据的大文件。

JPEG格式图片

无论是拍摄RAW格式文件还是JPEG文件,你都需要在拍摄的时候固定好焦点,因为这是在后期无法改变的。

相机会处理感光元件捕捉的原始数据,诸如白平衡、图片比例和颜色等,这些设置会永久地嵌入照片当中,与图像信息压缩在一起。JPEG格式文件是一种压缩文件,这就意味着你需要放弃一部分图片信息,从而创建一个格式较小的图片文件。

分析详解 用RAW格式做更多

有哪些是可以在拍完照片之后改变的?

RAW格式文件不仅可以为你提供高质量的图片以及更大的后期调整空间,还可以被视作一种安全网络,如果在拍完照片之后你的想法改变了,后期依然可以修改。不过你还是应该在拍的时候就尽可能让照片的设置是正确的,这样能够在预览的时候看到比较准确的效果。

曝光

尽管当你拍摄完成之后就不能改变光圈、快门速度或者感光度了,但是你可以调节照片的整体曝光。

白平衡

你可以像拍摄时那样选择白平衡预设,也可以在滚动条上手动调整或是点击画面中的某一个部分进行调整。

照片风格

多数相机都会提供照片风格供你选择,不过在转化RAW格式文件的软件中你可以改变色阶、对比度或者锐度。

nlc202309020407

降噪

对于高感光度或者长时间曝光的照片可以适当降噪,或者你可以把欠曝的照片调亮时进行降噪。

图片比例

RAW格式文件都是按照相机感光元件的原始比例(通常是3×2)存储照片的。如果你拍摄的时候使用的是JPEG格式并且设置了别的照片比例的话,那就不能改变了——RAW格式能给你一个改变主意的机会。

除尘

如果你有段时间没有清理过相机感光元件的话,那很有可能拍出来的照片上面会有灰尘的斑点。当你处理RAW格式文件的时候可以清除这些,然后再把这一修改应用到所有照片上。

分析详解RAW处理软件

转换RAW格式文件的常用软件

你需要将RAW格式文件处理过之后才能进行分享。每家相机厂商都会提供自己的处理RAW文件的软件,所以你不能用佳能的软件打开尼康的RAW格式文件,反之亦然。不过,有很多第三方软件支持打开各种相机的RAW格式文件。Photoshop使用的Adobe Camera Raw插件和Lightroom在功能上是类似的,只有操作界面不太一样。下面就是最新版ACR的一些主要功能。

1RAW格式文件

你可以一次性打开多个RAW格式文件并且进行批量处理。按住shift选中所有要批量处理的照片,然后进行调整,或者点击同步把其中一种调整方式应用在所有照片上。

2工具栏

在工具栏里面你可以放大照片、旋转照片,用调节笔刷调节图像的白平衡和曝光效果,用渐变滤镜压暗天空,或者用调直工具把地平线摆正。

3主窗口

通过按F键或者点击右上角的图标,可以在全屏模式和小窗口之间切换。你还可以同时在屏幕上显示原始照片和处理过的照片,按Q键在各种显示方式之间切换。

4直方图

直方图一直是可见的,这样你可以随时查看,不会在处理完后出现照片过亮或者过暗的情况了。在最上方可以激活过曝或是欠曝溢出警告。

5基本模块

在这里你可以进行最主要的曝光和颜色调整。你可以手动设置白平衡。通过移动滑块分别调节黑色、阴影、高光和白色,或者把光标放在直方图上,直接拖拽进行调整。

6曲线

当完成基本的曝光调节之后,你可以在这里再提高或降低对比度。除了使用曲线滑块以外,还可以选择目标调节工具,然后选定一个图片区域,在曲线上向上或是向下直接拖拽。

7HSL/灰度

除了调节整体颜色饱和度以外,你还可以单独调节每一种颜色的色相、饱和度和亮度(HSL)。在这个模块,你还可以转换成灰度模式,用不同的滑块增加对比度,创作出一张影调更丰富的黑白照片。

8锐化与降噪

ACR可以让你进行锐化并选择锐化的区域。数码照片需要不同程度的锐化,这取决于拍摄主体。拍摄RAW格式文件的好处是你可以后期进行微调,而不是拍摄的时候花时间在相机里面调整。

分析详解文件大小问题

想用RAW格式,你的相机存储卡有足够的空间吗?

尽管同一台相机拍摄出的高质量JPEG文件和RAW格式文件拥有同样的像素数量,但JPEG格式文件却更小一些,因为它在存储时有“损耗性”压缩。“损耗性”的意思是为了较小的文件大小而放弃一部分图片信息。RAW格式文件是无损格式,因此它的文件比较大,相对JPEG格式来说在同一张存储卡上能存储的照片数量就少些。有些相机有同时拍摄RAW格式文件和JPEG文件的选项,这样会让相机的拍摄和处理速度更慢。我们以佳能5D Mark Ⅲ为例,你可以在下面这张表中看到它们之间的区别有多大:

上一篇:董进宇如何教育子女演讲实录下一篇:我读懂了妈妈暑假