如何压缩文件
文件中储存数据的格式,文件是在磁盘等储存媒体中存储数据的一种形式。程序是以字节为单位向文件中存储数据的。文件的大小之所以表示为xxKB或xxMB等形式,就是出于这个原因。文件是字节数据的集合体。文件压缩的原理:就是用"字符x重复次数"来表示文件的内容.像这样将文件内容用“数据x重复次数”来表示的压缩方法称为流程编码。常用在传真的图像压缩等领域,但它并不适合用来压缩文本文件。一般的文章中很少有连续重复出现的字符,因为大部分字符后面会跟一个"1",文件大小自然会翻倍.第二种压缩方法称为哈弗曼算法。哈弗曼算法是大卫·哈弗曼于1952年提出的,ZIP格式也是使用哈弗曼算法来进行压缩的。要实现哈弗慢算法,压缩程序的内容会变得很复杂,但相应的压缩效率也会得到很大的提高。莫尔斯码的编码对象是英文字母,在一般的文本中出现频率越高的字母,其编码长度越短,这里的出现频率不是对出版物中的文章进行统计得出的结果,而是根据印刷厂所使用的活字个数来确定的。摩尔斯码规定,每两个字母之间需要有一个间隔,这里我们用00来表示这个间隔.莫尔斯码是根据字母在一般文本中的出现频率来确定他们的编码长度的。哈弗曼算法的要点是根据不同的压缩对象来构建最优的编码系统,并基于这一编码系统来进行压缩。哈夫曼算法使用哈弗慢树来构建编码系统,从而实现了不用分割符就能区分字符的编码系统。在使用哈弗曼树的情况下,即使每个字符的编码长度不同,不同的字符也能正确风分隔开来。哈弗曼树的构建方法,是先有末端的枝叶,最后形成根的。使用哈弗曼树就可以为出现频率较高的数据赋予长度较短的编码,并且可以准确判断字符之间的风分隔。最后来介绍一下图片文件的数据格式,使用图片文件的目的是将图像数据输入到显示器或打印机。有很多类型的图片文件格式,例如BMP格式、GPEG格式、GIF格式、PNG格式等。BMP之外的大多数图像数据格式采用了一定的方法对数据进行压缩。对于图片文件,我们可以使用与之前介绍的游程编码、哈夫曼算法不同的压缩方法,这是因为在大多数情况下,在质量方面,压缩后的图片文件没有必要和原来的完全相同。图片文件即使无法准确恢复到压缩前的状态,只要人眼感觉不到差异,就允许损失一些质量。能够恢复到压缩前状态的压缩方式,称为无损压缩,不能恢复到压缩前状态的压缩方式,称为有损压缩。JPEG格式的文件采用了有损压缩,GIF的格式的文件,虽然采用了无痕压缩但他最多只能储存储256种颜色,由此损失了一部分颜色信息,导致图像失真。PNG格式的文件采用了无损压缩,而且能够存储与BMP格式相同的数量颜色,因此图像能够保持原状。之所以存在这么多压缩方法,除了因为他们压缩率不同,还因为压缩所需要的处理时间(程度复杂度)以及适用于哪种文件有所不同。