导航:首页 > 源码编译 > 压缩文件的算法

压缩文件的算法

发布时间:2024-06-26 09:26:26

A. 如何压缩文件任何文件都可以压缩为什么要压缩压缩后对原文件有何影响

简单的说,就是经过压缩软件压缩的文件叫压缩文件,压缩的原理是把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0 的写法60,来减少该文件的空间。压缩文件的运行原理有损压缩和无损压缩无损压缩如果您从互联网上下载了许多程序和文件,可能会遇到很多ZIP文件。这种压缩机制是一种很方便的发明,尤其是对网络用户,因为它可以减小文件中的比特和字节总数,使文件能够通过较慢的互联网连接实现更快传输,此外还可以减少文件的磁盘占用空间。在下载了文件后,计算机可使用WinZip或Stuffit这样的程序来展开文件,将其复原到原始大小。如果一切正常,展开的文件与压缩前的原始文件将完全相同。
乍一听好像很神秘:您是怎样减少比特和字节的数量并将它们原封不动地还原回去的呢?等一切水落石出之后,您会发现这个过程背后的基本理念其实非常简单明了。在本文中,我们将讨论这种通过简单压缩来明显减小文件的方法。
大多数计算机文件类型都包含相当多的冗余内容——它们会反复列出一些相同的信息。文件压缩程序就是要消除这种冗余现象。与反复列出某一块信息不同,文件压缩程序只列出该信息一次,然后当它在原始程序中出现时再重新引用它。
以我们熟悉的信息类型——单词——为例子。
肯尼迪(John F. Kennedy)在1961年的就职演说中曾说过下面这段着名的话:
Ask not what your country can do for you——ask what you can do for your country.(不要问国家能为你做些什么,而应该问自己能为国家做些什么。)
这段话有17个单词,包含61个字母、16个空格、1个破折号和1个句点。如果每个字母、空格或标点都占用1个内存单元,那么文件的总大小为79个单元。为了减小文件的大小,我们需要找出冗余的部分。
我们立刻发现:
如果忽略大小写字母间的区别,这个句子几乎有一半是冗余的。九个单词(ask、not、what、your、country、can、do、for、you)几乎提供了组成整句话所需的所有东西。为了构造出另一半句子,我们只需要拿出前半段句子中的单词,然后加上空格和标点就行了。
大多数压缩程序使用基于自适应字典的LZ算法来缩小文件。“LZ”指的是此算法的发明者Lempel和Ziv,“字典”指的是对数据块进行归类的方法。
排列字典的机制有很多种,它也可以像编号列表那样简单。在我们检查肯尼迪这句着名讲话时,可以挑出重复的单词,并将它们放到编号索引中。然后,我们直接写入编号而不是写入整个单词。
因此,如果我们的字典是:
ask
what
your
country
can
do
for
you
我们的句子现在就应该是这样的:
1 not 2 3 4 5 6 7 8-- 1 2 8 5 6 7 3 4
如果您了解这种机制,那么只需使用该字典和编号模式即可轻松重新构造出原始句子。这就是在展开某个下载文件时,计算机中的解压缩程序所做的工作。你可能还遇到过能够自行解压缩的压缩文件。若要创建这种文件,编程人员需要在被压缩的文件中设置一个简单的解压缩程序。在下载完毕后,它可以自动重新构造出原始文件。
但是使用这种机制究竟能够节省多少空间呢?“1 not 2 3 4 5 6 7 8——1 2 8 5 6 7 3 4”当然短于“Ask not what your country can do for you-- ask what you can do for your country.”,但应注意的是,我们需要随文件一起保存这个字典。
在实际压缩方案中,计算出各种文件需求是一个相当复杂的过程。让我们回过头考虑一下上面的例子。每个字符和空格都占用1个内存单元,整个原句要占用79个单元。压缩后的句子(包括空格)占用了37个单元,而字典(单词和编号)也占用了37个单元。也就是说,文件的大小为74个单元,因此我们并没有把文件大小减少很多。
但这只是一个句子的情况!可以想象的是,如果用该压缩程序处理完肯尼迪讲话的其余部分,我们会发现这些单词以及其他单词重复了更多次。而且,正如下一节所言,为了得到尽可能高的组织效率,可以对字典进行重写。
在上一个的例子中,我们挑出了所有重复的单词并将它们放在一个字典中。对于我们来说,这是最显而易见的字典编写方法。但是压缩程序却不这样认为:它对单词没有概念——它只会寻找各个模式。为了尽可能减小文件的大小,它会仔细挑选出最优模式。
如果从这个角度处理该句子,我们最终会得到一个完全不同的字典。
如果压缩程序扫描肯尼迪的这句话,它遇到的第一个冗余部分只有几个字母长。在ask not what your中,出现了一个重复的模式,即字母t后面跟一个空格——在not和what中。如果压缩程序将此模式写入字典,则每次出现“t”后面跟一个空格的情况时,它会写入一个“1”。但是在这个短句中,此模式的出现次数不够多,不足以将其保留为字典中的一个条目,因此程序最终会覆盖它。
程序接下来注意到的内容是ou,在your和country中都出现了它。如果这是一篇较长的文档,将此模式写入字典会节省大量空间——在英语中ou是一个十分常见的字母组合。但是在压缩程序看完整个句子后,它立即发现了一个更好的字典条目选择:不仅ou发生了重复,而且your和country整个单词都发生了重复,并且它们实际上是作为一个短语your country一起发生重复的。在本例中,程序会用your country条目覆盖掉字典中的ou条目。
短语can do for也发生了重复,一次后面跟着your,另一次跟着you,因此我们又发现can do for you也是一种重复模式。这样,我们可以用一个数字来代替15个字符(包含空格),而your country只允许我们用一个数字代替13个字符(包含空格),所以程序会用r country条目覆盖your country条目,然后再写入一个单独的can do for you条目。程序通过这种方式继续工作,挑出所有重复的信息,然后计算应该将哪一种模式写入字典。基于自适应字典的LZ算法中的“自适应”部分指的就是这种重写字典的能力。程序执行此工作的过程实际上非常复杂。
无论使用什么方法,这种深入搜索机制都能比仅仅挑出单词这种方法更有效率地对文件进行压缩。如果使用我们上面提取出的模式,然后用“__”代替空格,最终将得到下面这个更大的字典:
ask__
what__­
you
r__country
__can__do__for__you
而句子则较短:
“1not__2345__--__12354”
句子现在占用18个内存单元,字典占用41个单元。所以,我们将文件总大小从79个单元压缩到了59个单元!这仅仅是压缩句子的一种方法,而且不一定是最高效的方法。(看看您能找到更好的方法吗!)
那么这种机制到底有多好呢?文件压缩率取决于多种因素,包括文件类型、文件大小和压缩方案。
在世界上的大多数语言中,某些字母和单词经常以相同的模式一起出现。正是由于这种高冗余性,而导致文本文件的压缩率会很高。通常大小合适的文本文件的压缩率可以达到50%或更高。大多数编程语言的冗余度也很高,因为它们的命令相对较少,并且命令经常采用一种设定的模式。对于包含大量不重复信息的文件(例如图像或MP3文件),则不能使用这种机制来获得很高的压缩率,因为它们不包含重复多次的模式。
如果文件有大量重复模式,那么压缩率通常会随着文件大小的增加而增加。从我们的例子中就可以看出这一点——如果我们摘录的肯尼迪讲话再长一些,您会发现又多次出现了我们字典中的模式,因此能够通过每个字典条目节省更多的文件空间。此外,对于更大的文件,还可能出现具有更大普遍性的模式,从而能够创建出效率更高的字典。
此外,文件压缩效率还取决于压缩程序使用的具体算法。有些程序能够在某些类型的文件中更好地寻找到模式,因此能更有效地压缩这些类型的文件。其他一些压缩程序在字典中又使用了字典,这使它们在压缩大文件时表现很好,但是在压缩较小的文件时效率不高。尽管这一类的所有压缩程序都基于同一个基本理念,但是它们的执行方式却各不相同。程序开发人员始终在尝试建立更好的压缩机制。有损压缩我们在上文中讨论的压缩类型称为无损压缩,因为您重新创建的文件与原始文件完全相同。所有无损压缩都基于这样一种理念:将文件变为“较小”的形式以利于传输或存储,并在另一方收到它后复原以便重新使用它。
有损压缩则与此大不相同。这些程序直接去除“不必要”的信息,对文件进行剪裁以使它变得更小。这种类型的压缩大量应用于减小位图图像的文件大小,因为位图图像的体积通常非常庞大。为了了解有损压缩的工作原理,让我们看看你的计算机如何对一张扫描的照片进行压缩。
对于此类文件,无损压缩程序的压缩率通常不高。尽管图片的大部分看起来都是相同的——例如,整个天空都是蓝色的——但是大部分像素之间都存在微小的差异。为了使图片变得更小同时不降低其分辨率,您必须更改某些像素的颜色值。如果图片中包含大量的蓝色天空,程序会挑选一种能够用于所有像素的蓝色。然后,程序重写该文件,所有天空像素的值都使用此信息。如果压缩方案选择得当,您不会注意到任何变化,但是文件大小会显着减小。
当然,对于有损压缩,在文件压缩后您无法将其复原成原始文件的样子。您必须接受压缩程序对原始文件的重新解释。因此,如果需要完全重现原来的内容(例如软件应用程序、数据库和总统就职演说),则不应该使用这种压缩形式。

B. 甯哥敤镄勬暟鎹铡嬬缉绠楁硶链夊摢浜涳纻

鍦ㄦ暟瀛楀寲镞朵唬锛屾暟鎹镄勫瓨鍌ㄥ拰浼犺緭鏁堢巼鏄惧缑灏や负閲嶈併备负浜嗗噺灏忓瓨鍌ㄧ┖闂村拰甯﹀介渶姹傦纴钖勭嶆暟鎹铡嬬缉绠楁硶濡傞洦钖庢槬绗嬭埇娑岀幇銆傝繖浜涚畻娉曚緷鎹涓嶅悓镄勫师鐞嗗拰阃傜敤鍦烘櫙锛屽垎涓哄彲阃嗗拰闱炲彲阃嗕袱绉岖被鍨嬶纴镞ㄥ湪鍦ㄤ缭璇佹暟鎹瀹屾暣镐х殑鍓嶆彁涓嬶纴灏藉彲鑳藉湴铡嬬缉鏁版嵁浣撶Н銆傝╂垜浠娣卞叆鎺㈣ㄤ竴涓嬭繖浜涘父鐢ㄧ殑鏁版嵁铡嬬缉绠楁硶銆

棣栧厛锛屽彲阃嗗帇缂╃畻娉曪纴濡侣uffman缂栫爜锛屼互鍏舵棤鎹熺壒镐ц屽弹鍒伴潚镌愩傚畠阃氲繃瀵规暟鎹镄勯戠巼鍒嗘瀽锛屼负姣忎釜瀛楃﹀垎閰嶆渶鐭镄勭紪镰侊纴浠庤屽疄鐜伴珮鏁堢殑铡嬬缉銆傝繖绉岖紪镰佹柟寮忕‘淇濅简瑙e帇钖庣殑鏁版嵁涓庡师濮嬫暟鎹涓镊达纴阃傜敤浜庡规暟鎹鍑嗙‘镐ц佹眰鏋侀珮镄勫満鏅銆

鎺ョ潃锛岄潪鍙阃嗗帇缂╃畻娉曞侸PEG锛屼互鐗虹壊涓瀹氱殑鏁版嵁绮剧‘搴︽崲鍙栨洿楂樼殑铡嬬缉姣斻傝繖绫荤畻娉曞湪锲惧儚澶勭悊鍜岃嗛戝帇缂╀腑骞挎硾搴旂敤锛屽挨鍏舵槸鍦ㄥ硅呜夎川閲忚佹眰鐩稿硅缉浣庣殑𨱍呭喌涓嬶纴鑳芥樉镢楀噺灏忔暟鎹閲忋

鏁版嵁铡嬬缉镄勭瓥鐣ュ氱嶅氭牱锛屽寘𨰾锘轰簬鍐呭圭殑缂栫爜锛埚傚瓧绗︿覆涓棰戠箒瀛楃︾殑棰戠巼缂栫爜锛夈佽〃绀烘柟娉曪纸濡傞湇澶镟肩紪镰佸规椂搴忔暟鎹镄勯珮鏁埚勭悊锛変互鍙婂规暟鎹娴佽勫緥镐х殑鍒╃敤锛埚傛父绋嬬紪镰佸拰RLE锛岀敤浜庤繛缁閲嶅嶆暟鎹镄勫帇缂╋级銆备緥濡傦纴"this is a example"阃氲繃棰戠巼缂栫爜鑳藉噺灏忓埌54姣旂壒锛屾瘆铡熷136姣旂壒鑺傜渷绾2.5鍊岖殑瀛桦偍绌洪棿銆

Delta鍜娈elta-of-Delta缂栫爜鍒椤湪澶勭悊鏂囦欢铡嗗彶璁板綍鍜屽崟璋冨簭鍒楁椂琛ㄧ幇鍑鸿壊锛岄厤钖圧LE绛夋妧链锛岃兘鏄捐宪闄崭绠鏁版嵁澶у皬銆侱elta阃氲繃阃愪釜鍏幂礌镄勫樊寮傛潵铡嬬缉鏁版嵁锛岃屼簩阒跺樊鍒嗙紪镰佸垯杩涗竴姝ュ垎鏋愬墠钖庝袱涓鍏幂礌镄勫樊寮傦纴涓よ呭湪鐗瑰畾鍦烘櫙涓嬮兘鑳芥彁渚涢珮鏁埚帇缂┿

Zig-zag缂栫爜鐗瑰埆阍埚硅礋鏁帮纴涓嶥elta缁揿悎鑳芥湁鏁埚勭悊灏忔暟锛屽疄鐜伴珮鏁埚瓨鍌ㄣ侴oogle寮婧愮殑Snappy浠ュ叾蹇阃熺殑铡嬬缉阃熷害鍜屽悎鐞嗙殑铡嬬缉鏁堟灉锛屽箍娉涘簲鐢ㄤ簬寮婧愰”鐩锛岃孡Z4鍒欎互鍏跺瓧鑺傜骇镄勫揩阃熻В铡嬫ц兘锛岀壒鍒阃傚悎瀹炴椂鏁版嵁浼犺緭銆

Simple8b绠楁硶绠鍗曢珮鏁堬纴涓扑负灏忔暣鏁拌捐★纴浣嗗帇缂╃巼鍙鑳借缉浣庛侺ZO鍒欎互蹇阃熷帇缂╄侀暱锛屼絾瑙e帇阃熷害鐣ラ娄簬LZ4锛屾洿阃傚悎澶勭悊澶у潡鏁版嵁銆侱EFLATE绠楁硶鏄疴ip鏂囦欢镄勯粯璁ゅ帇缂╂柟寮忥纴瀹幂粨钖堜简LZ77鍜孒uffman缂栫爜锛屾彁渚涗简涓绉嶅钩琛$殑铡嬬缉绛栫暐銆

杩戝勾𨱒ワ纴Zstandard浠ュ叾楂樻晥镄勫帇缂╁拰蹇阃熺殑瑙e帇鑳藉姏宕闇插ご瑙掞纴涓烘湭𨱒ユ暟鎹铡嬬缉鎶链镄勫彂灞曟弿缁树简骞块様鍓嶆櫙銆傝孊it-packing鍒欓氲繃铡婚櫎涓嶅繀瑕佺殑浣嶏纴杩涗竴姝ヨ妭鐪佸瓨鍌ㄧ┖闂达纴浣嗗彲鑳藉奖鍝嶆暟鎹镄勮诲彇阃熷害銆

TDengine鏁版嵁搴挞噰鐢ㄤ简涓阒舵靛帇缂╋纸鍖呮嫭Delta銆丼imple8b銆亃ig-zag鍜孡Z4锛夊拰浜岄桩娈甸氱敤铡嬬缉绛栫暐锛屼互阃傚簲涓嶅悓鍦烘櫙镄勯渶姹伞傞夋嫨铡嬬缉绠楁硶镞讹纴闇瑕佺患钖堣冭槛铡嬬缉鏁堢巼銆佽В铡嬮熷害浠ュ强鏁版嵁镄勫师濮嬬簿搴︼纴浠ユ垒鍒版渶阃傚悎镄勮В鍐虫柟妗堛

鍦ㄦ暟瀛楀寲涓栫晫涓锛屾暟鎹铡嬬缉绠楁硶鏄鎻愬崌瀛桦偍鍜屼紶杈撴晥鐜囩殑鍏抽敭宸ュ叿銆傛疮涓绉岖畻娉曢兘链夊叾镫鐗圭殑浼桦娍鍜岄傜敤锣冨洿锛屼简瑙e苟𨱔垫椿杩愮敤杩欎簺宸ュ叿锛岃兘甯锷╂垜浠镟村ソ鍦扮$悊鏁版嵁锛岄檷浣庡瓨鍌ㄦ垚链锛屾彁楂樻暟鎹澶勭悊阃熷害銆

C. 压缩或解压文件是什么原理

压缩文件的基本原理是查找文件内的重复字节,并建立一个相同字节的"词典"文件,并用一个代码表示,比如在文件里有几处有一个相同的词"中华人民共和国"用一个代码表示并写入"词典"文件,这样就可以达到缩小文件的目的.
由于计算机处理的信息是以二进制数的形式表示的,因此压缩软件就是把二进制信息中相同的字符串以特殊字符标记来达到压缩的目的。为了有助于理解文件压缩,请您在脑海里想象一幅蓝天白云的图片。对于成千上万单调重复的蓝色像点而言,与其一个一个定义“蓝、蓝、蓝……”长长的一串颜色,还不如告诉电脑:“从这个位置开始存储1117个蓝色像点”来得简洁,而且还能大大节约存储空间。这是一个非常简单的图像压缩的例子。其实,所有的计算机文件归根结底都是以“1”和“0”的形式存储的,和蓝色像点一样,只要通过合理的数学计算公式,文件的体积都能够被大大压缩以达到“数据无损稠密”的效果。总的来说,压缩可以分为有损和无损压缩两种。如果丢失个别的数据不会造成太大的影响,这时忽略它们是个好主意,这就是有损压缩。有损压缩广泛应用于动画、声音和图像文件中,典型的代表就是影碟文件格式mpeg、音乐文件格式mp3和图像文件格式jpg。但是更多情况下压缩数据必须准确无误,人们便设计出了无损压缩格式,比如常见的zip、rar等。压缩软件(compression software)自然就是利用压缩原理压缩数据的工具,压缩后所生成的文件称为压缩包(archive),体积只有原来的几分之一甚至更小。当然,压缩包已经是另一种文件格式了,如果你想使用其中的数据,首先得用压缩软件把数据还原,这个过程称作解压缩。常见的压缩软件有winzip、winrar等。
有两种形式的重复存在于计算机数据中,zip就是对这两种重复进行了压缩。
一种是短语形式的重复,即三个字节以上的重复,对于这种重复,zip用两个数字:1.重复位置距当前压缩位置的距离;2.重复的长度,来表示这个重复,假设这两个数字各占一个字节,于是数据便得到了压缩,这很容易理解。
一个字节有 0 - 255 共 256 种可能的取值,三个字节有 256 * 256 * 256 共一千六百多万种可能的情况,更长的短语取值的可能情况以指数方式增长,出现重复的概率似乎极低,实则不然,各种类型的数据都有出现重复的倾向,一篇论文中,为数不多的术语倾向于重复出现;一篇小说,人名和地名会重复出现;一张上下渐变的背景图片,水平方向上的像素会重复出现;程序的源文件中,语法关键字会重复出现(我们写程序时,多少次前后、paste?),以几十 K 为单位的非压缩格式的数据中,倾向于大量出现短语式的重复。经过上面提到的方式进行压缩后,短语式重复的倾向被完全破坏,所以在压缩的结果上进行第二次短语式压缩一般是没有效果的。
第二种重复为单字节的重复,一个字节只有256种可能的取值,所以这种重复是必然的。其中,某些字节出现次数可能较多,另一些则较少,在统计上有分布不均匀的倾向,这是容易理解的,比如一个 ASCII 文本文件中,某些符号可能很少用到,而字母和数字则使用较多,各字母的使用频率也是不一样的,据说字母 e 的使用概率最高;许多图片呈现深色调或浅色调,深色(或浅色)的像素使用较多(这里顺便提一下:png 图片格式是一种无损压缩,其核心算法就是 zip 算法,它和 zip 格式的文件的主要区别在于:作为一种图片格式,它在文件头处存放了图片的大小、使用的颜色数等信息);上面提到的短语式压缩的结果也有这种倾向:重复倾向于出现在离当前压缩位置较近的地方,重复长度倾向于比较短(20字节以内)。这样,就有了压缩的可能:给 256 种字节取值重新编码,使出现较多的字节使用较短的编码,出现较少的字节使用较长的编码,这样一来,变短的字节相对于变长的字节更多,文件的总长度就会减少,并且,字节使用比例越不均匀,压缩比例就越大。

D. bmp锲剧墖铡嬬缉绠楁硶-濡备綍铡嬬缉BMP镙煎纺镄勫浘鐗囷纴骞朵娇寰楀浘鐗囦粛铹惰兘淇濇寔娓呮榈锛

BMP锲惧儚铡嬬缉绠楁硶

BMP鏄疻indows涓嬬殑浣嶅浘鏂囦欢,灞炰簬瀹屽叏涓嶅帇缂╃殑锲剧墖鏂囦欢,鍖呭惈镄勬槸锲剧墖姣忎釜镀忕礌镣瑰圭偣镄勪俊鎭銆俽gb涓夐氶亾24浣岖殑璇濇疮阃氶亾鏄8浣,涔熷氨鏄2镄8娆℃柟镄勫皬瀛楄妭(8b=1B,1024B=1KB),鍗充负姣忎釜镣圭殑姣忎釜阃氶亾鍙浠ユ湁2镄8娆℃柟绉嶉滆壊,涓涓镀忕礌镓鍖呭惈镄勯滆壊灏辨槸2镄24娆℃柟绉嶃傚彲浠ユ牴鎹锲惧儚镄勫儚绱犲拰浣嶆繁镙囧嗳镄勮$畻鍑哄浘鐗囩殑澶у皬銆备絾鏄痡pg绛夌瓑杩欑嶅帇缂╂枃浠跺彧鑳藉ぇ姒备及璁℃枃浠舵湁澶氩ぇ镞犳硶绮剧‘璁$畻镄勚傛瘆濡1600*1200锲剧墖24浣岖殑:

姣忎釜镀忕礌镄勬疮涓阃氶亾链8b,鍗虫坠濡备负2镄8娆℃柟绾х伆阒,鍗犵敤绌洪棿涓1B,涓変釜阃氶亾灏辨槸3B,杩欎釜锲剧殑澶у皬鍗充负3*1600*1200B

鎹㈢畻鎴怣镄勮瘽灏辨槸3*1600*1200/1024/1024=5.4931640625M

镐庝箞铡嬬缉bmp镙煎纺镄勫浘鐗囧ぇ灏

bmp镙煎纺涓嶈兘铡嬬缉镄,瑕佸噺灏忎綋绉鍙鑳借铡嬬缉鎴恓pg鎴栬卲ng镙煎纺浜嗐傜敤杩欎釜鍦ㄧ嚎锲剧墖铡嬬缉宸ュ叿璇曡瘯钖,鍙浠ュ帇缂゜mp镙煎纺,𨱍虫妸锲剧墖鏂囦欢镄勫ぇ灏忓噺鍒板氩皯閮借,鐩存帴璁剧疆涓涓嬫暟鍊煎氨鎼炲畾,椹涓婄灛闂村氨鑳藉帇缂╁畬銆

鍦ㄧ嚎鏅鸿兘铡嬬缉锲剧墖澶у皬,锲剧墖铡嬬缉浣撶Н

鍦ㄧ嚎锲剧墖鏅鸿兘铡嬬缉浣跨敤姝ユ瘯楂桦惎楠:

涓銆侀栧厛镣瑰嚮锷犲彿娣诲姞闇瑕佸帇缂╃殑锲剧墖銆傜洰鍓嶅凡鐭ユ敮鎸佸筳pg銆乸ng绛夊氱嶅父瑙佺殑锲剧墖镙煎纺杩涜屽帇缂,濡傛灉涓娄紶锲剧墖骞跺帇缂╂垚锷,鍒欎唬琛ㄦ敮鎸佽ュ浘鐗囨牸寮忋

浜屻佸彲浠ヨ嚜琛屼慨鏀瑰浘鐗囬渶瑕佽铡嬬缉鍒扮殑链澶у介珮灏哄,榛樿や负锲剧墖铡熷嬬殑瀹介珮灏哄,涓斿介珮姣斾緥鏄镊锷ㄩ挛瀹氱殑銆

涓夈佸繀椤昏剧疆锲剧墖琚铡嬬缉钖,链熸湜杈揿嚭镄勫浘鐗囨枃浠剁殑链澶у崰鐢ㄧ┖闂淬(蹇呭~椤)

锲涖侀夋嫨锲剧墖鐢熸垚镄勭畻娉曘傞粯璁や负娣峰悎浼桦厛绠楁硶,缁濆ぇ澶氭暟𨱍呭喌涓嬩娇鐢ㄩ粯璁ょ畻娉曞嵆鍙銆

浜斻佸帇缂╃殑璁惧畾鍊间笉鑳藉皬浜1Kb,浣嗗浘鐗囧帇缂╃殑链缁堟晥鏋滃彲浠ュ皬浜1Kb銆

butterpig

濡备綍铡嬬缉BMP镙煎纺镄勫浘鐗囷纴骞朵娇寰楀浘鐗囦粛铹惰兘淇濇寔娓呮榈锛

bmp镙煎纺涓嶈兘铡嬬缉镄,瑕佸噺灏忎綋绉鍙鑳借铡嬬缉鎴恓pg鎴栬卲ng镙煎纺浜嗐傜敤杩欎釜鍦ㄧ嚎锲剧墖铡嬬缉宸ュ叿璇曡瘯钖,鍙浠ュ帇缂゜mp镙煎纺,𨱍虫妸锲剧墖鏂囦欢镄勫ぇ灏忓噺鍒板氩皯閮借,鐩存帴璁剧疆涓涓嬫暟鍊煎氨鎼炲畾,椹涓婄灛闂村氨鑳藉帇缂╁畬銆

鍦ㄧ嚎鏅鸿兘铡嬬缉锲剧墖澶у皬,锲剧墖铡嬬缉浣撶Н

鍦ㄧ嚎锲剧墖鏅鸿兘铡嬬缉浣跨敤姝ラ:

涓銆侀栧厛镣瑰嚮锷犲彿娣诲姞闇瑕佸帇缂╃殑锲剧墖銆傜洰鍓嶅凡鐭ユ敮鎸佸筳pg銆乸ng绛夊氱嶅父瑙佺殑锲剧墖镙煎纺杩涜屽帇缂,濡傛灉涓娄紶锲剧墖骞跺帇缂╂垚锷,鍒欎唬琛ㄦ敮鎸佽ュ浘鐗囨牸寮忋

浜屻佸彲浠ヨ嚜琛屼慨鏀瑰浘鐗囬渶瑕佽铡嬬缉鍒扮殑链澶у介珮灏哄,榛樿や负锲剧墖铡熷嬬殑瀹介珮灏哄,涓斿介珮姣斾緥鏄镊锷ㄩ挛瀹氱殑銆

涓夈佸繀椤诲康娓楄剧疆锲剧墖琚铡嬬缉钖,链熸湜杈揿嚭镄勫浘鐗囨枃浠剁殑链澶у崰鐢ㄧ┖闂淬(蹇呭~椤)

锲涖侀夋嫨锲剧墖鐢熸垚镄勭畻娉曘傞粯璁や负娣峰悎浼桦厛绠楁硶,缁濆ぇ澶氭暟𨱍呭喌涓嬩娇鐢ㄩ粯璁ょ畻娉曞嵆鍙銆

浜斻佸帇缂╃殑璁惧畾鍊间笉鑳藉皬浜1Kb,浣嗗浘鐗囧帇缂╃殑链缁堟晥鏋滃彲浠ュ皬浜1Kb銆

butterpig

E. 如何计算文件压缩率(将文件压缩成rar或zip格式后,怎么计算)

=
压缩后文件大小
压缩率= ------------------- X 100%
原文件大小

F. zip和tar的区别

zip和tar的区别如下:

1、概念

ZIP是一个文件的压缩的算法,原名Deflate(真空),发明者为菲利普·卡兹(Phil Katz)),他于1989年1月公布了该格式的资料。ZIP通常使用后缀名“.zip”,它的MIME格式为 application/zip。

tar是Unix和类Unix系统上的压缩打包工具,可以将多个文件合并为一个文件,打包后的文件后缀亦为“tar”。tar文件格式是POSIX标准,最初是POSIX.1-1988,当前是POSIX.1-2001。

2、作用和原理

ZIP是一种相当简单的分别压缩每个文件的存档格式,他的重要作用是压缩。分别压缩文件允许不必读取另外的数据而检索独立的文件;理论上,这种格式允许对不同的文件使用不同的算法。

tar命令是Unix/Linux系统中重要用途是备份文件,tar代表未压缩的tar文件。已压缩的tar文件则附加压缩文件的扩展名,如经过gzip压缩后的tar文件,扩展名为“.tar.gz”。

3、使用环境和使用方法

ZIP压缩主要被使用在windows系统下,常使用winrar,360压缩等软件来压缩、解压缩。

tar则使用在unix系统下,以命令行的方式使用,例如:

tar -cvf home_backup.tar /home(将/home目录下的所有文件打包入home_backup.tar文件中。);

tar -xvf home_backup.tar(在当前目录下解压home_back.tar)。

阅读全文

与压缩文件的算法相关的资料

热点内容
unix网络编程卷4 浏览:806
找靓机app下单什么时候发货 浏览:411
android一个应用两个进程 浏览:801
linux硬盘复制 浏览:806
php图片服务器搭建 浏览:799
下载压缩文件怎么打开 浏览:192
新建文件夹叫什么名字 浏览:565
windows20的开机命令 浏览:332
微信一般在电脑的那个文件夹 浏览:509
go在win7下编译特别慢 浏览:256
光遇ios耳机安卓为什么没有 浏览:904
小米手机桌面文件夹经常自动散开 浏览:607
小米电话手表用什么app进行设置 浏览:265
虚拟打印机pdf下载 浏览:671
jdk编译运行方法 浏览:459
android执行shell命令 浏览:349
程序员头像女 浏览:57
有什么可以变头发颜色的app 浏览:935
玩具解压屋游戏下载 浏览:849
我的世界拔刀剑服务器地址id 浏览:891