Python PIL,在调整大小和保存时保持质量

时间:2013-10-15 18:19:03

标签: python python-imaging-library

我有一个大图像,我在PIL中调整大小,使其宽度为250像素。这是它将在我的网站上显示的宽度。

然而,分辨率非常糟糕。我发现它已经将dpi从180改为96.如果我在像Windows Paint这样的程序中调整图像大小,那么它会保持180 dpi。这个Paint-resized图像在我的网站上看起来好多了。 (经过颜色调整的图像为40kb,而PIL调整大小的图像为16kb)

如何维护dpi(或将其设置为在网站上看起来不错的最大值)

我使用PIL调整大小:

image = image.resize((new_width, new_height), Image.ANTIALIAS)
image.save(filepath)

我试过了:

dpi = image.info['dpi']  # (180, 180)
image.save(filepath, dpi = dpi) 

但没有区别。 dpi是180,但分辨率仍然很差。我猜测在调整大小期间需要设置dpi吗?

编辑:

问题似乎是节约,而不是调整大小。即使我从Paint-resized图像开始(因此不会在PIL中调整图像大小),它仍然将它保存为96 dpi(16kb)的粗糙质量,保持原样。

1 个答案:

答案 0 :(得分:10)

感谢与abarnert的讨论,我(他)意识到问题是节约,而不是调整大小。

然后我找到了这个,解决了这个问题:

image_fullsize.save(filepath+name_fullsize, quality=95)

从这里:     How to adjust the quality of a resized image in Python Imaging Library?