我正在编写一个处理图像的Python脚本。是否有一个模块可以压缩图像而不将放入存档中,然后将其解压缩? (例如,压缩后1MB图像现在为0.8MB,解压后为1MB)。
我可以在不使用档案的情况下看到在Python中压缩和解压缩图像的示例代码吗?
我已经看了一些模块,但那些压缩字符串。
答案 0 :(得分:7)
您可能希望查看Python Image Library (PIL)以及PNG和JPEG格式。
PIL Image.save()方法可让您保存PNG或JPEG图像。
PNG - 无损,适用于纯色或少量色彩的“卡通”/徽标图像。
JPEG - 有损,适用于照片,有很多“继续”的图像。
答案 1 :(得分: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)