2

好的,所以我正在尝试尽可能多地压缩图像文件以进行存储(注意,在能够查看文件之前我会解压缩它,压缩文件不需要可用,它只需要能够未压缩)我想在python中执行此操作,我的代码如下:

import bz2
from shutil import copyfileobj

x = 0


while True:
    while x == 0:
        with open("START.JPG", 'rb') as input:
            with bz2.BZ2File("END.JPG", 'wb', compresslevel=9) as output:
                copyfileobj(input, output)

                print ("STAGE ONE COMPLETE")
                x = 1

    while x == 1:
        with open("END.JPG", 'rb') as input:
            with bz2.BZ2File("FINAL.JPG", 'wb', compresslevel=9) as output1:
                copyfileobj(input, output1)

                print ("STAGE TWO COMPLETE")
                x = 2

到目前为止,它确实将图像压缩了,但仅压缩了大约 1/3 MB,我认为通过压缩压缩文件我可以将其压缩得更远,但是当我这样做时,FINAL.JPG文件比我的第一个压缩文件大文件。所以我的问题是:压缩文件的最佳方法是什么(我知道不同的文件类型需要稍微不同的压缩,我的最终目标是压缩 MP3 音频文件),为什么当我压缩文件时我的压缩文件变大了?再次压缩它?,在这些文件之一无法解压缩之前,我还能制作多小?

预先感谢您提供的所有帮助,我相信我会得到!

4

1 回答 1

5

JPEG 图像文件和 MP3 音频文件已被压缩。除了以未压缩格式存储的一些元数据(例如 JPEG 图像上的 EXIF 标签)之外,压缩算法对这些类型的文件几乎没有任何进展。

请记住,压缩算法并不神奇——概括地说,它们通过在文件中查找模式并以更有效的方式对这些模式进行编码来工作。如果一个文件已经被压缩,它将不包含任何压缩算法可以使用的模式,因此它将无法生成更小的输出文件。

于 2013-06-02T18:44:05.113 回答