

【文海拾荒】
文件瘦身
作者/李东升
图片存储的格式有许多种,后缀名为BMP、JPG、GIF、……等文件,均为图片文件。不同格式的文件,各有其优缺点。如,以位图文件(BMP)存储的图片质量较高,但体积非常大,一张像素为1024x768的位图文件,大小就有几兆之多,占用磁盘的存储空间实在是太大了。再者,在手机或电脑上传送时,也会费时费力。以JPG格式存储的图片,体积比BMP文件小得多,但相对来说,图片质量较差。
这样,有一个问题就来了。怎样实现在计算机上用较小的空间存储高质量的图片呢?我思考过这个问题,并试着将想法编写为程序,然后在电脑上运行,有所得。
起初的想法是,将BMP文件转化为JPG文件。结果是文件体积确实减小了许多。但是,由于一些像素在转换过程中缺失掉了,无法再将JPG文件还原成高质量的BMP文件。于是,又另辟蹊径,想到了用压缩的手段试一试。
用传统的压缩软件(RAR)压缩纯文本文件,可将源文件压缩到原大小的十分之一。但是,压缩位图文件时,压缩后的文件大小跟原大小相差无几。因此,通过压缩使位图文件瘦身这条路,基本上被堵死了。之后,又想到了文件编码。
图片文件都是用二进制方式存储的。可先用一个脚本将文件转为B64代码,再将这个代码保存为文本文件。从理论上讲,文本文件大小是源文件大小的三分之四。接下来再将这个纯文本文件压缩到原来的十分之一。整个过程跟原子弹释放核能的道理相似。经过如此过程之后的压缩文件,体积明显缩小了,携带、存储和传输就会方便许多。我还使用过类似的方法,将一个文件夹植入到一个脚本或一个网页中。
写一个简单的脚本,就可以将这个压缩文件还原成原来的样子。具体流程是:先解压为纯文本文件,再将这个B64格式的文本转换成源文件。看着步骤稍多,但在电脑上,一瞬间就完成了。至于具体操作中所需的脚本,有需要的,可以直接与我联系。
欢迎对此感兴趣的朋友,私信与我一起探讨。
2016年7月 写于下板城



