我编写了一个用Java语言的压缩程序。我已经压缩了一些文本文件,这些文件在压缩后的大小得到了缩减。但是当我尝试压缩PDF文件时,我没有看到任何压缩后文件大小的变化。
因此,我想知道还有哪些类型的文件在压缩后不会减小其大小。
谢谢, Sunil Kumar Sahoo
我编写了一个用Java语言的压缩程序。我已经压缩了一些文本文件,这些文件在压缩后的大小得到了缩减。但是当我尝试压缩PDF文件时,我没有看到任何压缩后文件大小的变化。
因此,我想知道还有哪些类型的文件在压缩后不会减小其大小。
谢谢, Sunil Kumar Sahoo
文件压缩是通过移除冗余来实现的。因此,包含很少冗余的文件难以压缩或根本无法压缩。
你最有可能遇到的没有冗余的文件类型是已经被压缩过的文件。在PDF的情况下,这将特别是由主要由图像组成的PDF文件,其中这些图像本身就是使用一种像JPEG这样的压缩图像格式进行压缩的。
对于jpeg/gif/avi/mpeg/mp3等已经压缩过的文件进行再次压缩后,它们的大小不会有太大变化,可能只会略微减小。
压缩文件在压缩后不会减小其大小。
唯一无法压缩的文件是随机文件 - 真正的随机位或由压缩器输出近似的随机位。
然而,对于任何算法来说,有许多文件不能被它压缩,但可以被另一个算法很好地压缩。
PDF文件已经被压缩过。它们使用以下压缩算法:
根据创建PDF的工具和版本,使用不同类型的加密。您可以使用更高效的算法进一步压缩它,或者通过将图像转换为低质量的jpeg来降低质量。
这里有一个很好的链接:
使用像IDEA或DES这样的好算法在CBC模式下加密的文件,无论原始内容如何,都不再能够被压缩。这就是为什么加密程序首先进行压缩,然后才运行加密的原因。
媒体文件往往无法压缩。JPEG和MPEG不可压缩,但您可能能够压缩.png文件。