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

use*_*003 7 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)
Run Code Online (Sandbox Code Playgroud)

我试过了:

dpi = image.info['dpi']  # (180, 180)
image.save(filepath, dpi = dpi) 
Run Code Online (Sandbox Code Playgroud)

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

编辑:

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

use*_*003 11

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

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

image_fullsize.save(filepath+name_fullsize, quality=95)
Run Code Online (Sandbox Code Playgroud)

从这里: 如何在Python Imaging Library中调整已调整大小的图像的质量?