3

我正在编写一个处理图像的 Python 脚本。是否有一个模块可以压缩图像而不将其放入存档中,然后将其解压缩回来?(例如,压缩后 1MB 的图像现在是 0.8MB,解压后是 1MB)。

我可以在不使用存档的情况下查看在 Python 中压缩和解压缩图像的示例代码吗?

我已经看过一些模块,但是那些压缩字符串。

4

2 回答 2

7

您可能想看看Python Image Library (PIL)以及PNGJPEG格式。

PIL Image.save()方法可让您保存 PNG 或 JPEG 图像。

PNG - 无损,适用于纯色或少量颜色的“卡通”/徽标图像。

JPEG - 有损,适合照片,有很多“正在进行”的图像。

于 2012-06-27T19:40:00.740 回答
5

现代图像格式(例如 PNG 和 JPEG)已经被压缩,我的一般建议是采纳 Brendan Long 的建议并使用这些格式并利用所有已投入其中的工作。

也就是说,如果你想在 Python 中压缩任意文件的内容,这里有一个非常简单的例子:

import zlib

with open("MyImage.jpg", "rb") as in_file:
    compressed = zlib.compress(in_file.read(), 9)

with open("MyCompressedFile", "wb") as out_file:
    out_file.write(compressed)
于 2012-06-27T19:45:05.560 回答