所以我看了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中的文件大小?谢谢!
答案 0 :(得分:0)
我迟到了 - 但我注意到你的质量设置为80.默认值为75.这可能是你文件较大的原因。