首页阅读

漫谈压缩与解压缩

漫谈压缩与解压缩

经常会有同学问,想从百度网盘里下一个游戏,这么多文件应该下载哪一个?

答案是:你要把他们全部下载下来。

今天让我们一起来学习,压缩与解压缩。

什么是压缩和解压缩

压缩是一种通过特定的算法来减小计算机文件大小的机制,解压缩是他的逆向操作。如下图,压缩前的文件大小为 677,748,918,压缩后大小为 146,059,662,体积缩小为原来的 21%。

同样,压缩也可以用在图片和视频上,如著名的图片压缩网站 TinyPNG。

当然,压缩分为有损压缩与无损压缩。

上面两个例子中,第一个将文件压缩成压缩包,因为通过解压缩手段可以将压缩后的文件进行还原,所以它是无损压缩。

第二个例子中,TinyPNG 通过算法优化了图片中的颜色数量(量化技术,即把相似的颜色合并到一起),肉眼上我们很难分别压缩前后的图像有什么区别,但实际上它发生了不可逆的优化。

本节课,我们以讨论通过压缩软件对文件进行压缩与解压为主。

压缩有什么用

情景一、缩小文件体积

在微信中发送文件,提示发送的文件大小不能大于 100M。

此时可以通过压缩减小文件的大小,从而进行发送。

情景二、将多个文件进行打包

领导要求把活动所拍的照片发给他,如果你把 200 多张照片通过QQ发给他……

这个时候你应该将所有照片压缩成一个压缩包,然后再发给领导。

情景三、文件加密

之前有朋友问过,怎么把 U 盘或者一个文件夹加密,防止别人查看里面的内容。

老实说这样的软件是有,但有两个问题,一是你如果在其他电脑,没有对应的解密软件,你就无法打开他们了,也就是存在软件依赖性。二是如果软件坏了呢,你就失去了所有的加密后的文件。

这种时候,我比较推荐的是将这些文件打包成一个加密的压缩包,没有密码的情况下他人是无法查看的。

怎么压缩/解压文件

首先你需要安装一个解压软件,我比较推荐的是 WinRAR 这款老牌软件。

安装后,做一点儿简单的设置:

在选项 - 设置 - 整合 中,点击全部切换来选中所有的文件关联,然后勾选右侧的整合到资源管理器。这个操作可以让你把解压软件与压缩包进行格式关联,让你双击压缩包即可用 WinRAR 打开压缩包。

好了,现在选中目标,点击右键,选择添加到压缩文件来进行文件压缩。

修改一下压缩文件名称,我给他起名叫这是一个压缩包.rar,这个 .rar 是 RAR 压缩格式的专属扩展名。

我们可以看到,在 WinRAR 的压缩文件界面,默认支持三种压缩格式,RAR,RAR4,ZIP。

其中,RAR 是指 RAR5 压缩算法,这是 RAR4 的升级版,拥有更高的压缩率。rar 格式是 WinRAR 发明的拥有知识产权的非公开算法,他的解码器允许再发布,编码器则是专有的,这就是其他的压缩软件可以解压 RAR 格式,但是无法创建 RAR 格式的原因。

ZIP 是一个运用的非常广泛的压缩算法,因为它免费、兼容性较良好的特点,被很多厂商运用。如 Windows 将其集成在 explorer 中,宝塔等主机面板将其集成在产品中。但是遗憾的是 ZIP 在压缩率上略输于 RAR 以及开源的压缩算法 lzma2(7z-zip的默认算法)。

理论上讲,字典越大,压缩率越低,压缩后的文件体积越小。但是大的字典会造成压缩以及解压时的内存占用更高,速度更慢。一般情况下,我个人不会使用超过 128M 的字典,避免低配用户体验过差。

压缩为分卷,是指分卷压缩,即把压缩文件分为若干个小文件。还记着文章开始的那个问题么?他就是采用了分卷压缩的方式,将一个压缩包分割成了若干份,每一份都包含了压缩包的一部分。只有下载了全部的压缩包,才能将其进行解压操作。

使用分卷压缩,也可以用来解决我们在情景一中遇到的大文件上传问题,将其分成符合大小的文件进行传送。另外,在超大文件传输的环境下,使用分卷压缩是一个非常好的解决方案。

想想,假如你有 100G 文件,你想把它上传到网盘分享给你的朋友。假如你压缩成一个 90G 的压缩包,那你的朋友如果下载到一半网络环境出错,导致断点续传异常,下载完了发现无法解压,画面美的不敢想象。

这个时候通过分卷压缩,只需要重新下载受损的分卷,即可完成这项大文件传输工作。

右边有一个添加恢复记录的功能,这应该是 WinRAR 的特色功能,通过它可以给压缩包添加一定的恢复记录。在压缩包损坏后,可以根据恢复记录来修复压缩包。你可以在高级选项卡里找到恢复记录的百分比,默认是 3%,因为设置过高的恢复记录会导致压缩包体积增大,通常我们会设置 3% - 5%。

因此如果你遇到 RAR 文件解压失败,你可以先尝试进行工具 - 修复压缩文件来进行压缩包修复。

点击确定后,我们就能得到压缩后的压缩包。双击打开它,在信息中我们可以看到它的压缩率并不是很高。第一个原因是我的压缩参数用的是默认参数,第二个原因是图片、视频等本身是一种压缩后的数据,不能获得太好的压缩效果。

在以后你或许还会遇到,压缩后体积不降反增的 ISO 格式,我们的系统镜像文件通常会使用这个格式,他本身是一种压缩格式,因此二压不一定会得到更高的压缩率。

现在我们练习解压操作,点击解压到。我比较建议的是,新手在打开压缩包后应该直接点击解压到,什么都不要选,直接点击确定。这是最无脑也是最适合新手的操作方法。

但我还得保证让你能学到点儿有用的东西,所以我得稍作解释。解压的时候,如果当前你有选中列表中的文件,则点击解压后会默认将选中的文件进行解压,这会导致你并没有解压其他文件。而当没有选中指定文件时,默认是全选并解压。

在上方的图中,其它设置里有一项叫做在资源管理器中显示文件,我建议你勾选它并点击保存设置,这个选项会在解压完成后自动打开解压出来的文件,避免你不知道你解压的文件解压到什么鬼地方去了。默认情况下,解压的目的地路径,是与你的压缩包同级的目录。

有哪些错误的操作

误操作一、直接在压缩包中打开文件

这是一个令人窒息的神操作,压缩包在打开时,所有的文件会释放到临时目录下,由于路径等各种原因,很可能导致出现一系列奇葩问题,并且如果你对压缩包中的文件进行了修改,也可能因为编码等问题无法保存造成不必要的损失。反正一堆神仙问题。

误操作二、通过拖拽方式解压大文件

打开压缩包后,除了点击解压到来解压文件外,还有一种方法是直接拖拽文件到目标位置。但你得注意,这种拖拽方式下,解压软件会采取将所有内容解压到临时文件夹,然后移动到目标位置这样一个过程。

而默认情况下临时文件位于系统盘,这会造成如果你通过拖拽解压一个 100G 的文件到 D盘,你的 C盘剩余 50G,你的 D盘剩余 200G,从数据上看 D盘是足够容纳的,实际上在临时文件被释放到 C盘时,会因为容量不足而失败,很致命的一点是这时候临时解压出来的文件不会自动删除!

很多人发现自己解压失败后 C盘满了,分明自己选的是 D盘啊,实际原因就在于此。解压这种大文件时,应该采用解压到 - 选择解压路径的方式。

另外,临时文件会位于:

C:\Users\你的用户名\AppData\Local\Temp目录下,这个路径可以在设置中进行修改。

如果出现了解压失败导致异常占用的情况,在这个目录下找到以 Rar$ 开头的文件夹,删除即可。

希望你有所得。

以上就是(漫谈压缩与解压缩)全部内容,收藏起来下次访问不迷路!

86%的人还看了:(原创小说)橘子味儿的