资源描述
毕业设计
设计题目 静态图像文件格式转换软件的设计与实现
学生姓名
学 号
专业班级 信息安全
指导教师
年 6 月 16 日
37
静态图像文件格式转换软件的设计与实现
摘 要
静态图像文件是信息传递的重要方法之一,在各个领域的应用日益广泛。出于对分辨率、存储量、处理要求等方面的不同需求,目前静态图像文件存在着各种不同的格式,这在一定程度上限制了对于静态图像的利用。
本文主要研究静态图像文件格式的转换方法并加以程序实现。静态图像文件主要由文件头和图像数据组成,文件头的结构和图像数据的编码方式对于不同类型静态图像文件是不同的。本文的主要工作在于文件头的解析与构建以及图像数据的解码与重新编码。
首先介绍了图像文件格式的背景知识,之后选取了BMP、GIF、JPG、TIFF、PNG、PCX等常见图像文件格式,分析了其文件结构,优缺点及适用范围,并深入阐述了图像的压缩编码方法。在此基础上,设计并实现了静态图像格式转换软件。此软件构建了包含图像特征信息的图像特征库,结合CxImage图像操作类库对原始图像进行解析,获取目标图像所需的数据并加以构建。其中加入了缩放、旋转等辅助性简单图像处理。
关键词:图像文件格式、静态图像文件格式、格式转换、图像的压缩编码、数字图像处理
Design and Implement on the Conversion of Static
Image File Formats
Abstract
As an important way to transfer information, static image files are widely used now. For different needs, such as resolution ratio, storage amount, processing requirements and so on, there are many different formats for static image files. So many kinds of formats restrict the use of static image files to some extent.
We mainly discuss the conversion of different static image file formats in this thesis, and we give the design and implementation of the convert software system. Static image files are composed mainly of file header and pixel data. To different types of images, the structure of the header and the coding schema of the pixel data are different. The main work in this thesis is the analysis/building of the file header and the decoding/coding of pixel data.
At first we introduce the background knowledge of image file formats. Later we analyze some types of common used image file formats such as BMP, GIF, JPG, TIFF, PNG, PCX and so on, including their file structures, merits, demerits and applicable scopes. Furthermore we describe image compression and coding methods. Based on these, we design and implement the static file format conversion software system. An image feature library is built which has image feature information. Associated with the CxImage class library, we analyze the source file, get necessary information for target image and then construct it. Some auxiliary digital image processing methods are also used in this software such as zooming and rotating.
Keywords: Image file formats, Static image file format, Format conversion, Image compression and coding, Digital image processing
目 录
摘 要 I
ABSTRACT . II
第一章 引言 1
1.1 问题的提出 1
1.2 研究的意义 1
1.3本文的主要研究内容 1
第二章 静态图像文件解析 2
2.1 概述 2
2.2 数字图像的存储 2
2.2.1位映射图像 2
2.2.2 矢量图像 2
2.3 静态图像格式 3
2.3.1格式的制定与基本特点 3
2.3.1.1 格式制定的依据 3
2.3.1.2 图像文件格式的基本特点 3
2.3.2 BMP格式 4
2.3.2.1 综述 4
2.3.2.2 位图文件的结构 5
2.3.2.3 特点及适用范围 6
2.3.3 GIF格式 7
2.3.3.1 综述 7
2.3.3.2 GIF文件的结构 7
2.3.3.3 特点及适用范围 8
2.3.4 JPG格式 8
2.3.4.1 综述 8
2.3.4.2 文件结构 9
2.3.5 JPG2000格式 9
2.3.6 TIFF格式 9
2.3.6.1 综述 9
2.3.6.2 文件结构 10
2.3.6.3 文件分类 10
2.3.7 PNG 格式 10
2.3.7.1 综述 10
2.3.7.2 文件结构 11
2.3.8 PCX 格式 11
2.3.8.1 综述 11
2.3.8.2 文件结构 11
2.3.9 TGA 格式 12
2.3.10 WMF格式和EMF格式 12
2.3.11 WBMP格式 12
2.3.12 SVG 格式 13
2.3.13 ICO或CUR格式 13
2.4 图像的压缩编码 13
2.4.1 图像编码概述 13
2.4.2 编码原理 13
2.4.3编码方法 14
2.4.3.1 哈夫曼(Huffman)编码 14
2.4.3.2 行程编码 14
2.4.3.3 LZW编码 14
2.4.3.4 JPEG编码 15
2.4.3.5 LZ77压缩算法 15
2.4.3.6 图像压缩编码小结 16
第三章 静态图像文件格式转换软件的设计与实现 17
3.1 概述 17
3.2 软件设计 17
3.2.1 软件体系结构设计 17
3.2.2 软件流程设计 18
3.3 软件实现 19
3.3.1 开发环境 19
3.3.2 CxImage类库 20
3.4 CxImage图像操作类库 20
3.4.1类库的结构 20
3.4.2 CxImage的使用 22
3.5 格式转换 23
3.5.1实现方法与程序运行 23
3.5.2 格式转换与文件压缩 24
3.6 几种简单的数字图像处理的实现 24
3.6.1 镜像 24
3.6.2 旋转 26
3.6.3 反色 27
3.6.4 缩放 28
3.6.5 小结 28
第四章 总结与展望 29
4.1 总结 29
4.2 展望 29
致 谢 31
参考文献 32
附录 程序清单 33
图 表 目 录
图2-1 JEPG编码流程图 15
图3-1 软件体系结构图 17
图3-2 图像读取流程图 18
图3-3 图像显示及处理流程图 19
图3-4 类库层次图 20
图3-5 图像文件格式转换运行效果图 23
图3-6 原始图像 25
图3-7 图像的水平镜像 25
图3-8 图像的垂直镜像 26
图3-9 图像左旋90度 26
图3-10 图像右旋90度 27
图3-11 反色效果图 27
表2-1 图像按色彩的分类 4
表2-2 图像文件格式与位数的对应 4
表2-3 位图文件结构 5
表2-4 几种常见图像文件的压缩方式 16
表3-1 常用图像格式大小比较表 24
第一章 引言
1.1 问题的提出
计算机技术迅速发展的时代,静态图像文件作为传递信息的重要方法之一有着重要的作用。当前困扰个人用户的最大问题之一就是静态图像文件格式的多样性,比如用户自己拥有的应用程序无法读取某些静态图像文件。随着多媒体技术的迅速发展,涉及到的媒体形式越来越多,各种多媒体系统又有其独特的图像存储格式,用户根据自身的需求选择合适的格式以达到最佳的使用效果,因此,静态图像文件格式的转换就显得非常重要。目前,国内外都有许多优秀的图像处理软件(例如:Photoshop),但如果仅需要转换图像格式而不做其它处理就用不着这些专业的软件,只需使用专门进行格式转换的软件就足以。
1.2 研究的意义
在Windows操作系统中,人们最常使用的静态图像文件格式是位图文件格式,该图像文件格式也是Windows操作系统的默认静态图像文件格式。在Internet中,为了克服位图文件庞大臃肿的缺陷,人们使用最多的是JEPG和GIF图像文件格式。在桌面出版和图像处理软件系统中,各个软件开发商开发了更多的图像文件格式。目前世面上流行的静态图像文件格式多达数十种,这些图像文件格式各有千秋,在使用时可以根据具体情况进行选择和转换。
图像处理是对图像信息进行加工,以满足人的视觉心理或应用需求的技术。近几年来,随着计算机和各个相关领域研究的迅速发展,科学计算可视化、多媒体技术等研究领域和应用的兴起,数字图像处理从一个专门领域的学科,变成了一种新型的科学研究和人机界面工具,发挥着越来越重要的作用。而图像文件格式是进行图像处理的基础,本文希望对各种图像格式进行系统的归类,着重分析一些常用的静态图像文件格式,实现图像的显示和各种格式的相互转换。
1.3本文的主要研究内容
图像格式繁多,每种格式都有各自的特点和应用领域。如果能够将这些格式进行系统归类,将有利于不同领域图像方面的应用。图像分为静态图像和动态图像两大类别(在下文中如非特别说明,图像文件即是指静态图像文件),本文将深入分析静态图像文件的结构、编码方式,设计并实现格式转化软件。
第二章 静态图像文件解析
2.1 概述
近年来,个人计算机和工作站上的图形工具比几年前的巨型机上的图形工具还要多,计算机图形学的领域也随之扩展。过去,当人们编出图形应用程序后,需要把图像文件存储下来以作日后的处理或显示之用。由于没有一些标准的图像格式,给各种应用程序带来了极大的不便,这在很大程度上限制了图像处理的发展。从八十年代初以后,官方的标准组织开始提出一些图像文件格式,以促成文件代码在不同的应用程序和硬件上的可移植性。随之而来的结果是图像格式数量的急剧膨胀,在各种应用程序中所使用的格式有几十种之多。例如,在图形处理软件PhotoShop中用到的图像文件格式就有三十多种,比如:PCX、 GIF、TIFF、TARGA、BMP、JPEG、PCL、PDF、EPS、PNG、FLI/FLC 等。
目前,这些图像格式各有优缺点。一般来说,较简单的图像格式其执行效率较高,但压缩比就会较低,数据量较大,如BMP、TARGA 等。反之,较复杂的图像格式其执行效率稍低,但压缩比就会较高,数据量也较小,如GIF、JPEG等。所以就要根据实际情况,在应用程序中选择不同的图像格式。
本章将从存储方式、文件结构和编码方式等方面对静态图像文件进行分析。
2.2 数字图像的存储
静态数字图像的存储方式可以分为两种:位映射存储和向量存储。以这两种方式存储的图像也分别可称为位映射图像和矢量图像。
2.2.1位映射图像
位映射图像也就是位图图像,亦称为点阵图像或栅格图像即像素来代表图像,每个像素都被分配一个特定位置和颜色值。例如,在位图图像中各种景物是由该位置的像素拼合组成的。处理位图图像时,编辑的是像素而不是对象或形状。图像扫描设备、Photoshop 和其它的绘画以及图像编辑软件都产生位图图像。位图图像与分辨率有关,换句话说,它包含固定数量的像素,代表图像数据。因此,如果在屏幕上以较大的倍数放大显示,或以过低的分辨率打印,位图图像会出现锯齿边缘,且会遗漏细节。
2.2.2矢量图像
矢量图像是指用包含颜色和位置属性的直线或曲线(即称为矢量)来描述的一种图像。比如说一个椭圆,它就包括由通过椭圆边缘的一些点组成的轮廓和轮廓内的点两部分。移动、缩放景物或更改景物的颜色不会降低图像的品质。像Adobe Illustrator、CorelDraw、CAD等软件是以矢量图形为基础进行创作的。
矢量图形与分辨率无关,可以将它缩放到任意大小和以任意分辨率在输出设备上打印出来,都不会影响清晰度。因此,矢量图形是文字(尤其是小字)和线条图形(比如徽标)的最佳选择。
2.3 静态图像格式
2.3.1格式的制定与基本特点
2.3.1.1 格式制定的依据
目前的图像格式各有千秋。每一种类型的图形图像文件都有很多种存储格式。图形图像文件储存格式的提出,可能是由于以下几种情形:
n 为配合软件或硬件而制定
如ZSoft的Paintbrush所使用的.PCX 、Microsoft Windows所使用的.BMP以及Truevision Targe全彩显示卡所使用的.TGA。
n 计算机相关厂商制定
如由Aldus、Microsoft等八家公司共同发表的TIFF。
n 国际性的组织或协会所制定
如由ISO和CCITT为静态图像所建立的第一个国际数字图像压缩标准——JEPG。
总的来说,一个好的图像格式至少应具备这几个特点:结构容易了解、编程简单、支持多种色彩、扩充能力强、压缩比例高、执行速度快。
2.3.1.2 图像文件格式的基本特点
一般说来,一个图像文件除了本身的图像数据以外。还会有一个文件头,用于说明如何使用文件中的图像数据,文件头(header)可以说是图像文件中最重要的部分,它包含了图像的长宽、大小、分辨率、图像色彩数、调色板数据……等相关信息,有的图像文件甚至还会将公司名称、软件名称或是作者名称一并储存。除这些文件头之后,剩下的部分就是图像数据,而图像文件通常为了节省空间,往往都会使用一些压缩方法对图像数据进行编码。一般常见的压缩方法有Runlength法、Lzw法、Huffman法……等 。原则上较简单的压缩方法其执行效率会稍高,但是压缩比例就会较低;反之较复杂的压缩方法其执行效率会稍低,但是压缩比例就会较高。各个图像文件的文件头及压缩方法都不一样。
根据图像色彩数目不同,图像有如表2-1的分类。
表2-1 图像按色彩的分类
每点所需位数
色彩数目
4
16
8
256
16
65535
24
全彩
32
全彩
大部分的图像文件格式都支持24 位的真彩色图像,支持32 位的图像文件格的不多,表2-2为六种图像文件格式及所支持的位数(“*”表示支持)。
表2-2 图像文件格式与位数的对应
图像文件格式
1位
4位
8位
16位
24位
32位
BMP
*
*
*
*
JPEG
*
*
PCX
*
*
*
*
TGA
*
*
*
*
*
GIF
*
*
*
TIFF
*
*
*
*
*
2.3.2 BMP格式
2.3.2.1 综述
BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点--占用磁盘空间过大。所以,目前BMP在单机上比较流行。
2.3.2.2 位图文件的结构
表2-3给出了位图文件的结构。
表2-3 位图文件结构
位图文件头 bmp_hdr_t
位图信息头 bmp_info_t
颜色表 bmp_palent_t
实际的位图数据
n 位图文件头
结构定义如下:
typedef struct {
int_fast16_t magic; // 位图文件的类型,必须为BM
int_fast32_t siz; // 位图文件的大小,字节单位
int_fast16_t reserved1; // 位图文件保留字,必须为0
int_fast16_t reserved2; // 位图文件保留字,必须为0
int_fast32_t off; //位图文件头到数据的偏移
} bmp_hdr_t;
n 位图信息头
结构定义如下:
typedef struct {
int_fast32_t len; // 该结构所占字节数
int_fast32_t width; //位图宽度,像素单位
int_fast32_t height; //位图高度,像素单位
int_fast8_t topdown; //位图数据
int_fast16_t numplanes; //目标设备位面数,必须为一
int_fast16_t depth; //每个像素所占位数
int_fast32_t enctype; //位图压缩类型
int_fast32_t siz; //位图大小,字节单位
int_fast32_t hres; //位图水平分辨率
int_fast32_t vres; //位图垂直分辨率
int_fast32_t numcolors; //位图实际使用的颜色表中的颜色数
int_fast32_t mincolors; //位图显示中比较重要的颜色数
bmp_palent_t *palents; //颜色表
} bmp_info_t;
对于BMP文件格式,在处理单色图像和真彩色图像时,无论图像数据多么庞大,都不对图像数据进行任何压缩处理,一般情况下,如果位图采用压缩格式,那么16色图像采用RLE4压缩算法,256色图像采用RLE8压缩算法。
n 颜色表
这是对于那些需要调色板的位图文件而言的,有些位图如真彩图是不需要调色板的。结构定义如下:
typedef struct {
int_fast16_t red; //该颜色的红色分量
int_fast16_t grn; //该颜色的绿色分量
int_fast16_t blu; //该颜色的蓝色分量
int_fast16_t res; //保留值
} bmp_palent_t;
定义的颜色值中,红、绿、蓝三色的排列顺序与一般真彩色图像文件的颜色数据排列顺序恰好相反,即:若某个位图中的一个像素点的颜色的描述为“00,00,ff,00”,则表示该点是红色,而不是绿色。
n 实际的位图数据
对于用到颜色表的位图,图像数据就是该像素在颜色表中的索引值。对于真彩色图,图像数据就是实际的R、G、B值。下面针对2色,16色,256色和真彩色位图分别介绍。
对于2色位图,用1位就可以表示该像素的颜色(一般0表示黑,1表示白),所以一个字节可以表示8个像素。
对于16色位图,用4位就可以表示一个像素的颜色,所以一个字节可以表示2个像素。
对于256色位图,一个字节刚好可以表示1个像素。
对于真彩色位图,3个字节才能表示1个像素。
2.3.2.3 特点及适用范围
优点,在Microsoft Windows下得到广泛使用,支持稀疏的位元映射,采用非压缩格式,图像质量较高。缺点,除了Microsoft Windows外,无法在其他环境下使用,文件也很大。图像处理程序在内存中再现为BMP格式进行操作。它适用于非网络环境,如从PhotoShop导出到Windows画笔。对于解析度较小的图标、按钮等,采用其它图像格式压缩率无明显变化,但会增加计算机处理负担,使用BMP格式较理想。
2.3.3 GIF格式
2.3.3.1 综述
GIF是英文Graphics Interchange Format 图形交换格式的缩写。这种格式是用来交换图片的。GIF 格式的特点是压缩比高,磁盘空间占用较少。最初的GIF只是简单地用来存储单幅静止图像称为(GIF87a ),后来随着技术发展,可以同时存储若干幅静止图像进而形成连续的动画,使之成为当时支持2D 动画为数不多的格式之一(称为GIF89a),而在GIF89a 图像中可指定透明区域,使图像具有非同一般的显示效果。目前Internet 上大量采用的彩色动画文件多为这种格式的文件,也称为GIF89a格式文件。此外,考虑到网络传输中的实际情况,GIF 图像格式还增加了渐显方式,也就是说,在图像传输过程中,用户可以先看到图像的大致轮廓,然后随着传输过程的继续而逐步看清图像中的细节部分,从而适应了用户的“从朦胧到清楚”的观赏心理。但GIF 有个小小的缺点,即不能存储超过256 色的图像。尽管如此,这种格式仍在网络上大行其道应用,这和GIF 图像文件短小、下载速度快、可用许多具有同样大小的图像文件组成动画等优势是分不开的。
2.3.3.2 GIF文件的结构
GIF有五个主要部分以固定顺序出现,所有部分均由一个或多个块(block)组成。每个块由第一个字节中的标识码或特征码标识。这些部分的颀序为:头块、逻辑屏幕描述块、可选的“全局”色彩表块(调色板)、各图像数据块(或专用的块)以及尾块(结束码)。下面是这些部分的内容:
n 头是一个块,它识别数据流为GIF,并指示恰当地解释后面的数据所需的最早版本的GIF解码程序(87a或89a)。
n 逻辑程序描述块定义了包围所有后面图像的一个图像平面的大小、纵横尺寸比以及色彩深度(它类似于产生图像的监视器屏幕)。它还指明后面跟随的是否为“全局”色彩表。
n 全局色彩表(如果存在)构成一个24位RGB元组的调色板(每种底色为一个字节)。如果后面的像没有其自己的“局部”调色板,那么全局色表就是缺省调色板。
n 后续数据作为“图形”或“专用”块出现。图形块典型地包含一个或多个位图图像,也可能是覆盖的文本。专用块或者包含一个专用应用程序码,或者包含一句不可打印的注释。
n 最后的尾块只是值为3B(十六进制)的一个字节,表示数据流已结束。
注意:文件中的GIF数据流可能根本就不包含任何位图数据,这时,它只是要传输全局色彩表,作为没有自己调色板的后续数据流的缺省调色板。
2.3.3.3 特点及适用范围
优点,提供足够的信息并很好地组织这些信息,使得许多不同的输出设备能够方便地交换图形,由于CompuServe网络的广泛流行,许多平台都支持GIF。CompuServe通过免费发行格式说明书来推广自己。GIF支持24位元彩色,由一个最多有256种颜色的调色板实现,图形大小最多是64K×64K个象点。GIF的特点,包括LZW压缩、多图形的定序、交错屏幕绘图以及文字重叠。缺点,现行的GIF版本不能多于256个24位元彩色,它没有为储存灰度或彩色校正数据作准备,也不能储存CMYK或HSI格式的数据。GIF没有各种明显不同的模式(不像TIF或PCX那样)。尽管如此,GIF仍可以有许多的变化,一些变体和选择包括:
·多图形
·每个象点的元数
·“逻辑”屏幕(围绕所有后续图形的一个图形平面)大小(用象点计算)
·逻辑屏幕的横宽尺寸比
·逻辑屏幕中图形的大小和位置
·重叠文字的存在、大小和位置
·图形序列—延时、使用者提示、交错的传输或者前一个图形的恢复。
在早期GIF规范和当前规范之间存在一些变体(有两个GIF规范版本,一个在1987年,为“87a”,还有一个在1989年,为“89a”),新设计的应该使用最新版本,这里介绍的是最新版本。
文件较小,适合在网络环境,可作为背景、图像或动画放在主页中,也可作为颜色较简单的图标、漫画或程序界面等。印刷出版业中,GIF不适用于彩色图片,但非常适合于黑白图像(如曲线图)、灰度图像(如黑白照片扫描图)的印刷。
2.3.4 JPG格式
2.3.4.1 综述
JPG也是常见的一种图像格式,它由ISO和CCITT两大标准组织共同推出的,定义了摄影图像通用的压缩编码方法。JPG文件的扩展名为.jpg 或.jpeg,其压缩技术十分先进,它用有损压缩方式去除冗余的图像和彩色数据,获取得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像质量。同时JPG 还是一种很灵活的格式,具有调节图像质量的功能,允许用户用不同的压缩比例对这种文件压缩,比如最高可以把1.37MB 的BMP 位图文件压缩20.3KB。 当然用户完全可以在图像质量和文件尺寸之间找到平衡点。由于JPG 优异的品质和杰出的表现,它的应用也非常广泛,特别是在网络和光盘读物上。目前各类浏览器均支持JPG 这种图像格式,因为JPG 格式的文件尺寸较小,下载速度快,使得Web 页有可能以较短的下载时间提供大量美观的图像,JPG 同时也成为网络上最受欢迎的图像格式。
2.3.4.2 文件结构
JPEG文件由8个部分组成:图像开始SOI(Start of Image)标记;APPO标记(Marker);APPn标记(Markers),其中n=1~15(任选);一个或者多个量化表DQT(define quantization table);帧图像开始SOF0(Start of Frame);一个或者多个哈夫曼表DHT(Define Huffman Table);扫描开始SOS(Start of Scan);图像结束EOI(End of Image)。
2.3.5 JPG2000格式
JPG 2000同样是由JPG 组织负责制定的,它有一个正式名称叫做"ISO 15444",它是基于小波变换的图像压缩标准。JPEG2000通常被认为是未来取代JPEG(基于离散余弦变换,discrete cosine transform)的下一代图像压缩标准。JPEG2000文件的扩展名通常为.jp2或.j2k。JPG2000 作为JPG 的升级版其压缩率比JPG 高约30%左右。与JPG 不同的是,JPG2000 同时支持有损和无损压缩,而 JPG 只能支持有损压缩。无损压缩对保存一些重要图片是十分有用的。JPG2000 的一个极其重要的特征在于它能实现渐进传输,这一点与GIF 的"渐显"有异曲同工之妙,即先传输图像的轮廓,然后逐步传输数据,不断提高图像质量,让图像由朦胧到清晰显示,而不必是像现在的 JPG 一样,由上到下慢慢显示。此外,JPG2000 还支持所谓的"感兴趣区域"特性,可以任意指定影像上某区域的压缩质量,还可以选择指定的部份先解压缩。JPG 2000 和 JPG 相比优势明显,且向下兼容,因此取代传统的JPG 格式指日可待。JPG2000 可应用于传统的JPG 市场,如扫描仪、数码相机等,亦可应用于新兴领域,如网路传输、无线通讯等等。
2.3.6 TIFF格式
2.3.6.1 综述
TIFF是一种比较灵活的图像格式,它的全称是Tagged Image File Format,文件扩展名为.tif或.tiff。它是Mac中广泛使用的图像格式,它由Aldus 和微软联合开发,最初是出于跨平台存储扫描图像的需要而设计的。它的特点是图像格式复杂、存贮信息多。正因为它存储的图像细微层次的信息非常多,图像的质量也得以提高,故而非常有利于原稿的复制。该格式有压缩和非压缩二种形式,其中压缩可采用LZW 无损压缩方案存储。不过,由于TIFF 格式结构较为复杂,兼容性较差,因此有时软件可能不能正确识别TIFF文件(现在绝大部分软件都已解决了这个问题)。目前在Mac 和PC 机上移植TIFF 文件也十分便捷,因而TIFF 现在也是微机上使用最广泛的图像文件格式之一。
该格式支持256色、24位真彩色、32位色、48位色等多种色彩位,同时支持RGB、CMYK以及YCbCr等多种色彩模式,支持多平台。TIFF文件可以是不压缩的,文件体积较大,也可以是压缩的,支持RAW、RLE、LZW、JPEG、 CCITT3组和4组等多种压缩方式。
2.3.6.2 文件结构
TIFF格式主要由3部分组成:文件区、标志信息区和图像数据区。在存储图像时,如果将图像作为一个整体来存储的话,将会占用很大的存储空间。所以,TIFF文件在存储图像时,总是将图像分割成几部分,经过压缩后再进行存储。TIFF文件对图像进行分割有两种情况,一种是带状分割,一种是块状分割。顾名思义,前者是将图像分割成一个个条状的组合,后者是将图像分割成一个个块。在TIFF文件中,会使用一些标志信息来标记图像的有关存储信息。
2.3.6.3 文件分类
TIFF文件一般分为3类:
n 黑白图像。即一个像素用一位来显示。
n 灰度图像。通常用2位到8位的一个颜色深度来显示一个像素,这样它所能达到的颜色数目为4~256灰度级。
n 彩色图像。这是由调色板和RGB值来表示的,可以达到每像素24位的颜色深度。
2.3.7 PNG 格式
2.3.7.1 综述
PNG(Portable Network Graphics )是一种新兴的网络图像格式。PNG 是目前保证最不失真的格式,它汲取了GIF 和JPG 二者的优点,存贮形式丰富,兼有GIF 和JPG 的色彩模式。它的另一个特点能把图像文件压缩到极限以利于网络传输,但又能保留所有与图像品质有关的信息,因为PNG 是采用无损压缩方式来减少文件的大小,这一点与牺牲图像品质以换取高压缩率的JPG 有所不同。它的第三个特点是显示速度很快,只需下载1/64 的图像信息就可以显示出低分辨率的预览图像。第四,PNG 同样支持透明图像的制作,透明图像在制作网页图像的时候很有用,制作者可以把图像背景设为透明,用网页本身的颜色信息来代替设为透明的色彩,这样可让图像和网页背景很和谐地融合在一起。PNG 的缺点是不支持动画应用效果。Macromedia 公司的Fireworks 软件的默认格式就是PNG 。现在,越来越多的软件开始支持这一格式而且在网络上也越来截止流行。
2.3.7.2 文件结构
PNG图像格式文件(或者称为数据流)由一个8字节的PNG文件署名(PNG file signature)域和按照特定结构组织的3个以上的数据块(chunk)组成。
PNG定义了两种类型的数据块,一种是称为关键数据块(criticle chunk),这是标准的数据块。另一种叫做辅助数据块(ancillary chunks),这是可选的数据块。关键数据块定义了4个标准数据块,每个PNG文件都必须包含它们,PNG读写软件也都必须支持这些数据块。虽然PNG文件规范没有要求PNG编译码器对可选数据块进行编码和译码,但规范提倡支持可选数据块。
2.3.8 PCX 格式
2.3.8.1 综述
PCX格式是ZSOFT 公司在开发图像处理软件Paintbrush 时开发的一种格式,这是一种经过压缩的格式,占用磁盘空间较少。由于该格式出现的时间较长,并且具有压缩及全彩色的能力,所以现在仍比较流行。
PCX是最老的,因此也是个人电脑软件中得到最为广泛使用的位元映射格式之一。当前的版本可使用24位元彩色,现实最多256色的调色板或者全24位元的RGB,图形大小最多达64K×64K象点。数据是以运行长度编码(Run-Length Encoding)压缩。文件格式没有为储存灰度或彩色校正表留有余地,即不能储存CMYK (代表青色Cyaneous、紫红Magenta和黄色Yellow三种基本色,加上黑色black作对比)格式数据,也不能储存HSI格式数据[虽然有些Zsoft程序允许使用HSI (代表色调Hue、饱和度Saturetion和亮度Intensity)来调整彩色值。它的运行长度压缩方法效率不高,尤其是对于扫描图形或视频信息图形。由于PCX的发展年代较老, PCX文件可以使用各种调色板技术,但其结果是大多数阅读程序不能处理所有可能的PCX格式图形。
2.3.8.2 文件结构
PCX格式由三个部分组成,即文件头、位图数据(较新版本的)和一个可达256种色彩的调色板。
其文件由固定128字节的文件头开始。它除了版本号以外,还包括被打印或扫描图像的分辨率(单位为每英寸点数)、大小(单位为像素数)、每扫描行字节数、每像素位数和彩色平面数。文件还可能包括一个调色板以及表明该调色板是灰度还是彩色的一个代码。
文件的核心部分是位图数据。位图数据以类似于Packbits 压缩法的运行长度压缩形式记录,像素值通常是单字节的指针,指向调色板中的位置。
如果版本号为5,则文件末尾处还有一个单一的位平面,一个RGB值的256色调色板三种底色各一个字节)。
2.3.9 TGA 格式
TGA(Tagged Graphics)文件是由美国Truevision 公司为其显示卡开发的一种图像文件格式,已被国际上的图形、图像工业所接受。TGA 的结构比较简单,属于一种图形、图像数据的通用格式,在多媒体领域有着很大影响,是计算机生成图像向电视转换的一种首选格式。
2.3.10 WMF格式和EMF格式
WMF(Windows Metafile Format)是Windows 中常见的一种图元文件格式,属于矢量文件格式.它具有文件短小、图案造型化的特点,整个图形常由各个独立的组成,部分拼接而成,其图形往往较粗糙。
EMF(Enhanced Metafile)是微软公司为了弥补使用WMF 的不足而开发的
展开阅读全文