进入快盘 | 申领稿费  |  新人报到  |  意见建议 | 购买卡币    

卡巴斯基技术论坛's Archiver

李釗濠 发表于 2008-3-28 17:11

关于1G的文件压成1M的文件

<SPAN style="COLOR: #0000ff"><FONT size=2>1.常见文件压缩 <BR>  首先我们用WinRAR的最高压缩率对常见的文本文件、程序文件和多媒体文件进行压缩,其压缩结果如下(见图1): <BR><IMG onclick="if(this.width>=700) window.open('http://club.joyes.com/images/upload10/2007/01/23/025254.jpg');" src="http://club.joyes.com/images/upload10/2007/01/23/025254.jpg" onload="if(this.width>'700')this.width='700';if(this.height>'700')this.height='700';" border=0> <BR>压缩后分别还是挺大的 <BR>  从上图可以看出,多媒体文件压缩比最低,与原文件相差无几,而文本文件和程序文件压缩比要高一些,最高达到3:1,从实际经验来看,我们平时常见的文件压缩比都在10倍以下。 <BR>  那么,再来看看这个RAR压缩包(见图2),注意其中的原文件大小和压缩后的包裹大小分别为16777215和18407,这是多大的比例?笔者用计算器算了一下,约等于911:1,接近1000倍的压缩比!这是怎么回事?真的假的?跟我一起继续做下面的试验就明白了。 <BR><IMG onclick="if(this.width>=700) window.open('http://club.joyes.com/images/upload10/2007/01/23/025317.jpg');" src="http://club.joyes.com/images/upload10/2007/01/23/025317.jpg" onload="if(this.width>'700')this.width='700';if(this.height>'700')this.height='700';" border=0> <BR>这个简直是不可思议 <BR>  2.把大象装进瓶子里 <BR>  这里笔者从自己的电脑里随便找了个文件“数字图像噪声和去除.htm”,这是笔者在浏览网页时使用另存为功能从网上下载的文章,大小为125KB。 <BR>   <BR>  第一步:压缩为ZIP文件。右键单击“数字图像噪声和去除.htm”文件,选择“WinRAR→添加到档案文件”,在压缩选项对话框中选择“档案文件类型”为“ZIP”,“压缩方式”为“最好”(见图3),单击“确定”开始压缩。可以看到压缩后的“数字图像噪声和去除.zip”文件只有19KB,压缩率还不错,不过仍离我们的目标相去甚远。 <BR><IMG onclick="if(this.width>=700) window.open('http://club.joyes.com/images/upload10/2007/01/23/025341.jpg');" src="http://club.joyes.com/images/upload10/2007/01/23/025341.jpg" onload="if(this.width>'700')this.width='700';if(this.height>'700')this.height='700';" border=0> <BR>第二步:用WinRAR打开“数字图像噪声和去除.zip”,记下“大小”列中显示的原文件大小数值“127594”,打开计算器程序,单击“查看”菜单选择“科学型”,输入数字“127594”,再点击“十六进制”选项将其转换为16进制值,结果是“1F26A”(见图4)。 <BR><IMG onclick="if(this.width>=700) window.open('http://club.joyes.com/images/upload10/2007/01/23/025403.jpg');" src="http://club.joyes.com/images/upload10/2007/01/23/025403.jpg" onload="if(this.width>'700')this.width='700';if(this.height>'700')this.height='700';" border=0> <BR>用科学型计算器认真算一下 <BR> 第三步:用UltraEdit编辑器打开“数字图像噪声和去除.zip”文件,我们要在文件中找到“1F26A”的数据,不过由于文件中的十六进制数是高低位倒置表示的,所以我们要查找的数据就变成了“6AF201”,单击“搜索”菜单中的“替换”,将文件中的“6AF201”替换为“FFFFFF”(见图5),共替换两处,文件开头和结尾各一处,替换后保存文件修改。 <BR><IMG onclick="if(this.width>=700) window.open('http://club.joyes.com/images/upload10/2007/01/23/025421.jpg');" src="http://club.joyes.com/images/upload10/2007/01/23/025421.jpg" onload="if(this.width>'700')this.width='700';if(this.height>'700')this.height='700';" border=0> <BR>替换数值 <BR>小提示 <BR>  我们前面之所以要选择ZIP压缩格式,而不是直接使用RAR压缩格式,是因为WinRAR对RAR格式的CRC检验非常严格,对文件进行任何修改都会提示压缩错误,而使用ZIP格式压缩,修改后再用WinRAR打开时不会进行严格的CRC检验,没有任何错误提示。 <BR>  第四步:现在再用WinRAR打开“数字图像噪声和去除.zip”文件,你会惊奇地发现,压缩包中显示的原文件体积达到了16777KB(见图6),也就是16MB!现在你明白我们第三步中所做修改的目的了吧,我们就是要把原文件从“蟋蟀”变成“大象”!而且,现在你把压缩包中的“数字图像噪声和去除.htm”文件解压出来,其文件体积仍然是16MB,而且可以正常打开浏览。 <BR><IMG onclick="if(this.width>=700) window.open('http://club.joyes.com/images/upload10/2007/01/23/025437.jpg');" src="http://club.joyes.com/images/upload10/2007/01/23/025437.jpg" onload="if(this.width>'700')this.width='700';if(this.height>'700')this.height='700';" border=0> <BR>谜底揭晓了 <BR>第五步:接下来就很简单了,把这个修改后的ZIP格式变成RAR格式即可,如果用WinRAR“工具”菜单中的“转换档案文件格式”功能转换后的压缩比会稍微缩小,这里我们直接将“数字图像噪声和去除.zip”改名为“数字图像噪声和去除.rar”,就做成了最开始看到的那个超级压缩包。 <BR>  3.文件压缩原理 <BR>  文件压缩分为有损压缩和无损压缩两种,我们常用的WinRAR、WinZip都是属于无损压缩,其基本原理都是一样的,简单地说也就是把文件中的重复数据用更简洁的方法表示,例如一个文件中有1000个字母A,那么这将占用1KB的数据空间,如果用压缩算法就可以用1000A来表示,那么它只需要5个字节的数据空间,压缩比达到了200倍。 <BR>  那么由此看来,1000倍甚至更高倍的压缩比是可以实现的,但要求源文件必须有足够多的重复数据。不过,我们平时使用的文件都不可能是这样的,所以通常文件压缩比都在10倍以下,如果某个软件声称对任何文件都能够产生这种超高压缩比的话,那它肯定就是具有欺骗性质的了。 <BR>  小编有话说:很多网上下载的文件只有300MB或400MB,但是解压后,居然可以达到2GB甚至更多,也许你会奇怪,为什么你用WinRAR压缩同样的文件,就没有这样的压缩效果呢?其实这是因为这些文件是用多款不同的压缩软件进行压缩的,用压缩音频最好的压缩软件压缩音频文件,用压缩动画最好的压缩软件压缩动画文件。而且在压缩时所选的参数也是最佳的,这样也就保证了最后生成的压缩文件是最小的</FONT></SPAN>

koefi 发表于 2008-3-28 18:15

:@7# :@7# :@7# 复杂,看不明

xjp 发表于 2008-3-28 19:51

好象有点麻烦哦~~~不过还是谢谢欣赏了

tomyjoy 发表于 2008-3-29 10:36

不错,谢谢楼主分享

dethmask 发表于 2008-3-29 12:07

这个方法不是对任何文件都管用的:@12#

wu12310 发表于 2008-3-29 14:34

不需要这么麻烦,只要找一个用了很久的大的数据库文件(我是用SQL的),压缩一下,好几G可以也可以压缩成十几M。

凤凰鸟 发表于 2008-4-5 22:50

:@7# :@7# :@7# 好麻烦啊,但这个方法是不是对任何文件都管用?:@1# :@1#

dengyai 发表于 2008-4-7 13:15

:@14# :@14# :@14# 镇的吗,好神奇啊!

zjames 发表于 2008-4-7 19:51

回复 5楼 的帖子

是吗 ?能不能具体说说怎么弄啊?谢谢了

西部 发表于 2008-4-17 00:25

学习了!谢谢!

spendl 发表于 2008-4-17 12:49

我想没多少个人会看得明~
:@6#

流云 发表于 2008-4-17 12:53

看晕了哦:@7# :@7#

yxgygood 发表于 2008-5-15 19:39

看不懂

573678174 发表于 2008-5-29 13:21

回复

这都行啊

网乐数码 发表于 2008-5-29 15:49

呵呵,谢謝分享!学习学习再学习!!!

my_2004 发表于 2008-7-28 22:29

好复杂

junde_li 发表于 2008-8-29 16:11

*** 作者被禁止或删除 内容自动屏蔽 ***

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.