如何在python中减少图像文件的大小?

时间:2013-12-26 01:37:49

标签: python image python-imaging-library

所以我看了this question并从中获得了以下代码:

import Image, ImageFile  
pic = pic/goes/here.jpg
im = Image.open(pic)
width, height = im.size
if width > 1000 or height > 1000:
    width = width*.7
    height = height*.7
im = im.resize((int(math.floor(width)), int(math.floor(height))), Image.ANTIALIAS)
try:
    im.save(pic,optimize=True,quality=80)
except IOError:
    ImageFile.MAXBLOCK = width * height
    im.save(pic,optimize=True,quality=80)

最后一点来自this question,因为我注意到当文件大小超过1500~px时,PIL就有点放弃了(我不知道为什么?)

问题是,当我使用大约2500x1600的图像运行此代码时,PIL要么给我一个相同大小的图像(1.2MB),要么给出一个0 MB的空文件。我曾经有一个更大的文件!?!? (1.38MB)

那么我做错了什么?我只想将图像优化为文件大小而不会损失大约80%的质量。

还有其他任何方法来减少python中的文件大小?谢谢!

1 个答案:

答案 0 :(得分:0)

我迟到了 - 但我注意到你的质量设置为80.默认值为75.这可能是你文件较大的原因。