2012-06-27 47 views
2

我在写一个处理图像的Python脚本。有没有一个模块,可以压缩图像没有把它放入档案,并解压缩回来? (例如,1MB图像现在在压缩后为0.8MB,然后在解压缩后为1MB)。在Python中压缩图像(No Archive)

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

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

回答

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) 
+0

优秀的帮助 - 一个简单的例子是我所需要的。它工作得很好,谢谢。 – Eric

7

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

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

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

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