bmp图像格式

2024-11-07 版权声明 我要投稿

bmp图像格式(精选5篇)

bmp图像格式 篇1

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;

bmp图像格式 篇2

位图文件 (Bitmap-File, BMP) 格式是Windows采用的图像文件存储格式, 在Windows环境下运行的所有图像处理软件都支持这种格式。Windows 3.0以前的BMP位图文件格式与显示设备有关, 因此把它称为设备相关位图 (devicedependent bitmap, DDB) 文件格式。Windows 3.0以后的BMP位图文件格式与显示设备无关, 因此把这种BMP位图文件格式称为设备无关位图 (device-independent bitmap, DIB) 格式, 目的是为了让Windows能够在任何类型的显示设备上显示BMP位图文件。BMP位图文件默认的文件扩展名是BMP或者bmp。

由于进行图像处理时多采用对BMP进行处理, 因此需要熟悉BMP图像的内部结构, 本文就着重介绍其结构, 并根据它的结构进行一些简单的图像处理。

1 BMP图像的格式[1,2]

位图文件可看成由4个部分组成:位图文件头 (bitmap-file header) 、位图信息头 (bitmapinformation header) 、调色板信息 (color table) 和位图数据。为了表示这些信息的方便我们把这几部分分别采用结构体的形式来定义。具体信息如表1所示。

1.1 位图文件头

位图文件头包含有关于文件类型、文件大小、存放位置等信息, 在Windows 3.0以上版本的位图文件中用BITMAPFILEHEADER结构来定义:

typedef struct tag BITMAPFILEHEADER{

UINT bf Type;//表示图片的格式, 这里应该是"BM", 2个字节

DWORD bf Size;//表示图片的大小, 用字节表示, 4个字节

UINT bf Reserved1;//保留位, 不被使用, 设置为0, 2个字节

UINT bf Reserved2;//保留位, 不被使用设置为0, 2个字节

DWORD bf Off Bits;//说明从BITMAPFILEH EADER结构开始到实际的图像数据之间

17//的字节偏移量, 4个字节

}BITMAPFILEHEADER;

本文用c语言中的文件操作函数 (fopen, fread, fwrite等) 以字节为单位读取位图文件头 (以10进制表示) 。结果如下:

其中66, 77表示图片的格式, 变为16进制是424D, 就是“BM”;130 107 1 0表示图片的大小, 由于Windows的存储习惯是从低位向高位存, 所以图片大小应是0, 1, 107, 130, 变成16进制就是016B82, 也就是说图片大小是93058字节;0 0 0 0是两个保留位。54 4 0 0表示地址偏移量, 也就是0 0 4 54, 转为16进制是00436, 就是1078字节, 这就是说文件从开头到图像数据之间有1078个字节。

1.2 位图信息头

位图信息头 (BITMAPINFOHEADER) 结构包含有位图文件的大小、压缩类型和颜色格式, 其结构定义为:

typedef struct tagBITMAPINFOHEADER{

DWORD biSize;//说明BITMAPINFOHEAD-ER结构所需要的字节数

LONG biWidth;//位图文件的宽度

LONG biHeight;//位图文件的高度

WORD biPlanes;//表示最终观察位图图像的目标显示设备的位数, 通常它不起作

//用, 但确是Microsoft所需要的

WORD biBitCount;//定义了位图每象素颜色的位数, 它可为1、4、8或24, 在

//win2k以后还支持32位的, 比24位的增加了一个透明度字//节。

DWORD bi Compression;//标示位图是否压缩。

DWORD biSizeImage;//位图大小的字节数。 (与前面的文件大小不同)

LONG bi XPels Per Meter;//图像x方向的分辨率

LONG biYPelsPerMeter;//图像y方向的分辨率

DWORD biClrUsed;//图像所使用的颜色数, 如果不用就置0, 表示所有颜

//色都用到, 如果位图被压缩, 则必须置0;

DWORD bi Clr Important;//图像中重要的颜色数, 通常置为0

}BITMAPINFOHEADER;

本文同样可以采用c语言中的文件操作函数来读取位图的信息头, 结果如下:

从上面的结果我们看到, 位图信息头共40个字节, 位图的宽为33 1 0 0, 即为289, 位图高为59 1 0 0, 即为315。位图每象素颜色的位数8, 说明是256色的图像。其他信息本文就不赘述了。

1.3 调色板信息

并不是所有的位图文件都有调色板, 其中24位和32位的位图是没有调色板的, 因为它们的数据部分是以RGB的形式来存储的。1、4、8位的位图都是有调色板的, 这些位图的数据部分存储的是调色板中个颜色的索引号。这些调色板的结构如下:

Typedef struct tag RGBQUAD{

BYTE rgbBlue;//颜色的蓝色分量

BYTE rgbGreen;//颜色的绿色分量

BYTE rgbRed;//颜色的红色分量

BYTE rgbReserved;//保留位, 为0

}RGBQUAD;

需要注意的是, 这个结构体不是按RGB的结构来定义的, 而是BGR, 这是因为微软的存储习惯问题。存储器中就是以这样的顺序来存储颜色的。

由于位图每象素颜色的位数不同调色板的大小就不同, 本文就以8位的位图为例。8位位图的颜色数为2=256色。又由调色板的结构可知道, 每个颜色占4个字节, 所以8位位图的调色板信息共1024个字节。

1.4 位图的数据

BMP文件中位图的数据是以连续行的形式存储的, 并且是以相反的顺序存储, 即文件读出的第一行是图像的最后一行。图像数据是从左下角到右上角顺序存储的。这和我们通常所习惯的xy坐标是一致的, 即x坐标向右, y坐标向上。采用API函数来进行处理BMP文件时是不需要关心象素顺序的, 只有当自己对图像进行处理的时候才会用到。关于位图数据需要分两种情况来讨论:

(1) 1、4、8位位图。这三种位图都有自己的调色板信息, 所以它们的数据部分存储的都是调色板中颜色的索引号。比如说8位位图它共有256种颜色, 索引号在0到255之间, 所以我们可以用一个字节来表示这个索引号 (也就是图像的数据) 。由于BMP格式中规定每行的字节数必须是4的整数倍。所以如果某图片的行字节数不是4的倍数, 就应当用0来补齐。

(2) 24、32位位图。这两种位图不需要调色板信息, 它们的数据部分包含了RGB的值。24位的位图每个像素点的数据为BGR。而32位的位图每个像素点的数据为BGRT, 最后的T是表示透明度。如果图片的行字节数不是4的倍数, 也应当用0来补齐。

2 图像的空间域处理

有了上面的信息就可对BMP图片进行处理了, 由于空间域的变换原理都差不多 (基本上都是先把图像的数据部分放到一个距阵中, 然后对其进行相应的变换) , 所以本文就以256色图变灰度图和高低通滤波为例进行介绍。

(1) 8位位图转灰度图。8位位图与灰度图的不同在于调色板的不同, 8位的位图调色板中256种颜色因图的不同而不同。但灰度图的调色板中是固定的256种颜色, 即:1 1 1 0, 2 2 2 0, 33 3 0, …255 255 255 0。所以转灰度图时只需要改变调色板就可以了。

(2) 高低通滤波。高低通滤波的处理原理类似, 都是先选定模板, 然后用模板对图像中每个数据都进行处理。在进行处理之前还要先将图像数据矩阵四周各补一行 (列) 。本文高通滤波采用的模板是{-1, -1, -1, -1, 9, -1, -1, -1, -1}, 低通滤波采用的模板是{1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9}。本文采用MFC来实现的灰度图转换和高低通滤波, 在读取图片数据的时候采用的是本文第二部分的内容来进行的 (未采用CDib类) 。其效果图如图1所示, 其中第一幅图是原图变换后的灰度图, 第二幅是低通后的灰度图, 第三幅是高通后的灰度图。

从图1可以看出, 低通滤波通过将图片中的高频部分滤除, 使图像的精细结构消失, 黑白突变处变模糊, 高通滤波是通过将图片中的低频部分滤除, 增强其高频分量, 使图像的边缘变得清晰, 图像变的尖锐化。

3 结语

本文通过解析BMP图像存储的格式, 对图片进行了一些空间域的变换, 并在MFC中得到了验证。利用本文介绍的方法, 不仅可以完成空间域的变换, 还可以完成频率域的变换。

参考文献

[1]潭浩强.C程序设计[M].北京:清华大学出版社, 2000.

bmp图像格式 篇3

关键词:数字化教学资源 平面设计 图形图像格式

在数字化教学资源的开发制作和平面设计中,图形图像的应用是最广泛的。教学工作包括写教案、出试卷、绘制挂图等,写教学论文,PPT课件、FLASH动画和视频制作中,都离不开图形图像的应用。所以图形图像的处理是数字化教学资源开发制作中最重要的工作之一。

一、图形图像的常用格式

一般来说,图形文件对应的是矢量图,而图像文件对应的是位图,又称为点阵图。

矢量图用数学的向量方式来记录图形内容,图形以线条和色块为主。由于矢量图形可通过公式计算获得,所以矢量图形文件体积一般较小。矢量图形与分辨率无关,可以将它缩放到任意大小和以任意分辨率在输出设备上打印出来,都不会影响清晰度。位图是由称作像素的单个点组成的。这些点可以进行不同的排列和染色以构成图样。由于位图表现的色彩比较丰富,所以占用的空间会很大。当放大图像时,像素点也放大了,但每个像素点表示的颜色是单一的,所以在位图放大后就会出现马赛克状。

基于两者的优缺点,在图形图像的处理和应用中,要根据教学资源的要求来选择合适的图形图像格式。常用的图形图像格式有很多种。矢量图格式有CDR、AI、EPS、DWG、EPS和WMF等,位图格式有JPG、GIF、PSD、PNG和TIF等。

二、图形图像格式的相互转换

1.矢量图转换为位图的方法

在矢量绘图软件中绘制好图形后,在其他软件中使用是经常遇到的。这就存在一个用什么方法把图形拿出去的问题。最简单的方法是先拷贝图形,再在其他软件中粘贴。但这种方法效果不好,一是图形大小不能调整,二是图形不光滑。在把矢量图形转换为位图时,有两个重要属性要注意,一是图形导出后背景要透明,二是保留图形的矢量性质。下面介绍在实际应用中最好的导出法。

利用软件的导出功能,简便而且效果好。首先把在CorelDraw绘制好要导出的图形放置在一个单独的页面。点击文件下拉菜单看到导出或者按快捷键Ctrl+E,弹出导出对话框,在保存类型选项一定要选EPS格式。因为EPS格式同时具备背景透明和具有矢量性质,对在后来的位图软件中使用极有好处。点击導出,选默认配置,将图片导出为EPS格式文件。在PhotoShop打开刚才导出的EPS文件,出现“栅格化EPS格式”对话框。这时可以根据需要设置大小、分辨率以及色彩模式。

2.位图转换为矢量图的方法

在教学资源的开发制作中,经常遇到位图转矢量图的情况。教学实践中,笔者总结了如下两种方法用于位图转矢量图,效果很好。

(1)PhotoShop选区法。根据图像的情况,假如要处理的图像是黑白图案形式的,那么用这种方法是再恰当不过了。首先运行PhotoShop,打开要转换的图片。用魔棒工具选取图案黑色部分,再点选菜单“选择/选取相似”,将图案全部选取。打开路径调板,点击调板右上角的黑色小三角形,打开对话框,选“建立工作路径”,容差设置为1,再点击确定,将选区转为路径。点选菜单“文件/导出”,选“路径到Illustrator”把路径以AI的格式导出。打开CorelDraw,新建一个文档。把刚才PhotoShop导出的AI格式的对象导入,然后双击工具栏“选择工具”全选对象。选属性栏的取消全部群组,填充中颜色。再选择属性栏里前面那个“合并”后对象的形状全部出现。

在应用这种方法时,如果原图的图片太小,可以在PhotoShop中将图像转为智能对象,把图片拉大后再用魔棒选取对象。

(2)CorelDraw描摹位图法。CorelDraw是一个功能强大的矢量绘图软件,但也有对位图图像的处理功能,其中描摹位图的功能,就很方便地可以把位图转为矢量图。首先打开CorelDraw X5,新建一个文件,把需要转换的彩色位图导入到CorelDraw X5里。选取图片对象,在属性栏出现描摹位图图标,点开后选择轮廓描摹/高级图像,出现转换对话框,点击确定,图片会转换为矢量图。再对描摹后的矢量图进行适当的修改,即可得到效果不错的矢量图。

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

图像和动画的存储方式是一个很重要的问题。幸好有了数据压缩,有了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.

几种常用图像格式的教学应用剖析 篇5

一、教学图像的重要共性

1. 图像格式

各种图像格式的不同之处在于表示图像数据的方式, 并且它们支持不同的压缩方法和Photoshop功能。图像的标准位深度是8位 / 通道, 除非是图像处理类课程的特例, 教学图像通常不需要涉及更多的位深度。

适用于教学的图像格式, 种类不少, 但真正常用、兼容性又好的却并不多, 在充分研究这些格式特性的基础上用好它们, 是本文的初衷。

2. 分辨率设置

在调整图像大小的时候, 可以设置分辨率, 因为绝大多数教学图像都是用于教学网站、网络课程、课堂教学用演示文稿或者教学软件等几个方面, 极少有涉及高分辨率打印输出等情况, 因此可将教学图像分辨率固定设置为72PPI或者96PPI, 而以96PPI为更好 (以适应高清显示器已经广泛应用这个现实) , 只有用GIF格式制作教学动画时, 可以选择72PPI, 这是因为动画本身的尺寸比较小。

由于显示器物理分辨率是固定的, 在教学图像中使用更高的分辨率, 通常只是无谓增加了传输、解压和系统的负担, 有害无益, 这应当成为共识和常识。

3. 存储为 Web 所用格式

“存储为Web所用格式”是Photoshop“文件”菜单下的选项, 其键盘快捷键为Alt+Shift+Ctrl+S, 这种存储方式往往不容易被人们注意到, 但它却是生成教学图像的最佳方式, 理由如下:

(1) 三种最常用的教学图像格式, GIF、JPEG和PNG都可统一用这种方式生成;

(2) 每种图像格式, 都有针对Web和电脑显示的完整优化选项, 适应性极强;

(3) 过去Photoshop附带的Image Ready位图编辑器已经被这个功能替代, 即:“存储为Web所用格式”是Photoshop生成GIF动画的唯一方法。

二、JPEG 格式图像及其教学应用

1.JPEG 格式图像概述

JPEG ( 联合图像专家组 ) 格式是在World Wide Web及其他联机服务上最常用的一种格式 (如图1) , 用于显示超文本标记语言 (HTML) 文档中的照片和其他连续色调图像, 它是大多数数码相机的默认记录格式。JPEG格式支持CMYK、RGB和灰度颜色模式, 但不支持透明度。与GIF格式不同, JPEG保留RGB图像中的所有颜色信息, 但通过有选择地扔掉数据来压缩文件大小。

JPEG图像在打开时自动解压。压缩级别越高, 得到的图像品质越低;压缩级别越低, 得到的图像品质越高。在大多数情况下, “最佳”品质选项产生的结果与原图像几乎无分别。

JPEG使用有损压缩, 建议对连续色调图像 (如照片) 使用此压缩方法, 若要指定图像的品质, 当用Photoshop保存时, 请在“品质”文本框中输入0至12之间的一个值。如果图像需要高分辨率打印输出, 请选取最佳品质压缩。但对大多数教学应用, 品质“高” (对应值8) 已经足够。

2.JPEG图像的教学应用及处理方法

(1) 就教学而言, JPEG格式通常用于教学网站上的照片展示、网页的背景图片、网络课程的“Banner” (横幅渐变图片) 、教学示意图 / 原理图、幻灯片放映用图、课堂演示文稿的母版背景图、教学软件插图以及在其他在线服务中显示照片和其他连续色调图像;

(2) 由于其压缩品质可选, 所以适应范围很广, 既可以是非常简洁的图符, 也可以是用以研究图像处理效果的高清晰度大图;

(3) 需要注意的是, 由于JPEG不支持透明度, 所以作为背景类或者装饰性的图片使用时, 通常要进行一些加工, 在Photoshop中, “以快速蒙板模式”编辑、使用自定形状工具和图层样式制作特别的边框、在蒙板上使用渐变填充、调整图层不透明度和图层混合模式、使用各种滤镜等, 是常用的方法。

依据前文, “存储为Web所用格式”是生成教学图像简便而又更加适当的方式, 如图1所示, “品质”可选0至100, 这里选了“非常高” (默认为80) , 默认勾选“连续”, 这时网络图片将以多条路径下载, 而“优化”用以创建更小但兼容性更低的文件, “图像大小”用于改变尺寸, 如果是缩小, 通常选择插值算法“两次立方 (较锐利) ”, 其他选项较少用到, 读者可自行参阅相关文献或Adobe的帮助文件。

三、GIF 格式图像:图片动画的唯一选择

1.GIF 格式图像概述

图形交换格式 (GIF) 是在World Wide Web及其他联机服务上常用的一种文件格式 ( 如图2) , 用于显示超文本标记语言 (HTML) 文档中的索引颜色图像。GIF是一种用LZW压缩的格式, 目的在于最小化文件大小和传输时间。GIF格式保留索引颜色图像中的透明度, 但不支持Alpha通道。

2.GIF 图像的教学应用价值

GIF与JPEG同为最早出现、最常用的图像格式, 它有以下三大特点, 注定了其广泛的教学应用价值:

(1) GIF采用索引颜色模式, 最多256色, 这个特性使得文件可以变得非常小, 尤其适合教学插画、图符、教学示意图或原理图等类不需要太多颜色的教学应用;

(2) GIF支持透明度, 这样插入的图片可更好地与教学应用情景融为一体, 而不需要专门设置, 图2所示的是一个256色, 抠为透明背景的教学插图, 文件很小, 可以方便自然地应用到教学网页、网络课程、演示文稿或者教学软件中, 而无须额外处理;

(3) GIF是唯一支持动画的图像格式, 与FLASH等需要插件或播放器的动画不同, GIF动画天然被各种教学应用环境所支持, 不需要任何设置!设计精巧的GIF动画可以给教学应用带来丰富的多媒体感受和教学交互性 (例如设置形象生动的超级链接等) 。

四、PNG 格式图像:教学应用前途广阔

1.PNG 格式图像概述

便携网络图形 (PNG) 格式是上世纪90年代中期作为GIF和TIFF的无专利替代品开发的, 同时增加了一些GIF文件格式所不具备的特性, 用于无损压缩和在Web上显示图像。PNG格式支持无Alpha通道的RGB、索引颜色、灰度和位图模式的图像。

PNG格式有PNG-8和PNG-24两种, 都支持透明度, 而前者跟GIF类似, 同样采用8位调色板, 将RGB彩色图像转换为2至256种索引仿色, 它很适合那些颜色比较单一的图像, 例如Logo、图标等;PNG-24与GIF不同, 它支持24位真彩色和256级透明度, 使得彩色图像的边缘能与任何背景平滑地融合, 从而彻底地消除锯齿边缘, 这种功能是其他图像格式没有的;此外, PNG具备流式读 / 写性能 (stream ability) , 即允许连续读出和写入图像数据, 这个特性很适合在网络教学过程中生成和显示图像。

PNG出现较晚, 很多网络浏览器经过很长时间才开始完全支持PNG格式, 如微软的IE浏览器一直到7.0版才支持PNG格式中的半透明效果, 但它后来居上, 在许多教学情境下可以更好地替代JPEG和GIF格式。

2.PNG 图像的教学独特应用

(1) PNG-24格式同时拥有256级透明度和真彩色支持两大属性, 这在图像格式中是独一无二的, 可适用于制作教学图标、Logo、教学示意图、流程图、带透明渐变的背景图、各种材质的镂空文字、带自定形状边框的高清图片等等几乎所有教学环境;

(2) 更优化的网络传输性能 (流式特性) 、更小的体积和能够无损压缩等优异特点, 使其成为未来教学图像应用, 特别是网络教学方面非常有前途的格式;

(3) 在目前的智能移动设备上, PNG已经成为最主流的图像格式之一, 它在移动学习方面 (例如以平板电脑为主的“电子书包”) 的应用重要性, 将是不可替代的。

图3为“存储为Web所用格式”, 预设选“PNG-24”时的对话框, 其中“交错”复选框用以让图片“以多条路径下载”。

示例图片使用了苹果自定形状做蒙版抠图, 又用了“金子”图层样式做特色边框, 再在图层蒙板中用黑白渐变工具示范了连续渐变半透明效果。

五、PDF 格式:理想的电子教材

便携文档格式 (PDF) 是一种灵活的、开放标准的、跨平台和跨应用程序的文件格式, 2007年12月成为国际标准。

基于Post Script成像模型, PDF文件精确地显示并保留字体、页面版式以及矢量和位图图形, 无论在哪种打印机上都可保证忠实地再现原稿的每一个字符、颜色以及图像。另外, PDF文件可以包含电子文档搜索和各种导航功能等。

PDF包括Photoshop PDF和通用PDF两种类型, 后者更多是图像和文本等的混合文件类型, 这里将它作为常用图像格式来推介, 是因为它具有以下两种特别的教学应用价值:

1. 交互式多媒体电子书

PDF电子书制作简单、排版美观、图文并茂、兼容性好, 更重要的是具有很强的交互功能, 如翻页、跳转、超级链接到网页或音视频等, 还可随意放大缩小阅读、圈点标注等, 是最常用的电子书格式。

通过新版本Adobe Acrobat等软件制作的PDF电子书, 不仅可以通过链接、书签等方式激活多媒体, 甚至可以在页面上直接播放包括各种格式的音频、视频和交互多媒体 (如SWF) 在内的各种多媒体文件。

另外, PDF电子书通过安全性设置, 可以有效地保护知识产权, 例如限制电子书的阅读、打印、内容复制和编辑等。

2. 高度精确的教材打印

笔者曾对我市中学教师开设《教学图像处理:应用与研究》继续教育课程, 印刷自编教材时遭遇较严重的排版问题:在Word中我已经对特别选择的美观中文字体做了“将字体嵌入文件”处理, 并将无法嵌入的专利字体转换为PNG图片了, 但在其他电脑上依然会出现版式混乱等情况, 反复折腾几次后, 最终选择将文件另存为PDF格式, 打印时一切问题都不存在了, 在Word中的诸多设置变为多余!

注:Office2010起已经整合另存为PDF格式功能, 老版本则需安装和使用“Microsoft另存为PDF或XPS加载项”。

PDF的优点在于跨平台、能保留文件原有格式, 字型嵌入系统是其特色技术之一, 可使字型随文件一起传输。此外, Photoshop PDF文件能在PDF中保留Photoshop数据, 如图层、Alpha通道、路径和专色等, 并支持几乎所有颜色模式, 而文件大小和兼容性都优于PSD格式, 可作为图像处理教学的一种可选存储格式。

六、结束语

本文介绍的四种图像格式, 也是最常用的教学图像格式, 在各教学领域中的应用价值很高, 这方面的专门思考虽然不多, 但不知不觉的应用已经在教学中不断开展。

表1概括了四种图像格式的特点, 根据教学应用的不同, 我们应该有的放矢地选择不同图像格式, 以达到优化教学资源的目的。

总体来说, JPEG适用于不需要透明度的连续色调教学场景, 例如照片插图和背景图 (有时需额外处理) , 它的特点是压缩程度灵活可调、兼容性好;GIF是唯一支持教学动画的格式, 有利于促进教学交互性, 而它对透明度的有限支持, 又可用于颜色不多的简洁图标或教学示意图等的创建;PNG是最有教学应用前景的一种格式, 除了不支持动画外, 它几乎可以在所有方面替代前面两种格式;PDF更多时候是一种混合媒体格式, 它支持多媒体和交互性很强的电子书, 同时可用于高保真的教学文档打印。

摘要:本文介绍了几种常用图像格式, 在分析它们各自特性的基础上, 结合当今教学的实际需求, 探讨了它们在促进多媒体与交互教学方面的典型应用方法。

关键词:图像格式,JPEG,GIF,PNG,PDF,教学应用,Photoshop

参考文献

[1]Adobe帮助系统[DB/OL].http://helpx.adobe.com/cn/photoshop, 2014.

[2]维基百科:JPEG[DB/OL].http://en.wikipedia.org/wiki/JPEG, 2014.

[3]维基百科:GIF[DB/OL].http://zh.wikipedia.org/zh-cn/GIF, 2014.

[4]维基百科:PNG[DB/OL].http://zh.wikipedia.org/zh-cn/PNG, 2014.

[5]PNG功能规范白皮书 (最新版) [DB/OL].http://www.w3.org/TR/PNG, 2003.

上一篇:2024—2025学年度第一学期班级工作计划下一篇:农村基层党组织“三级联创”活动方案