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

11

我有一张大图片,通过PIL调整大小使其变为250像素宽。这是在我的网站上显示的宽度。

然而,分辨率非常差。我发现它已经将dpi从180改变成了96。如果我在Windows画图等程序中调整大小,则可以保持180 dpi。这样调整大小后的图片在我的网站上看起来更好。(Paint调整大小的图片为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 调整大小后的图像(因此不在 PIL 中调整图像大小),它仍将其保存为劣质的 96 DPI(16KB),而不是保持原样。


1
这是我尝试过的解决方案,但它没有起作用。 - user984003
@user984003:你保存文件的格式是什么?是JPG还是其他有损压缩的格式? - abarnert
它最初是jpg格式,我也将其保存为jpg格式。 - user984003
@user984003:那几乎肯定是你的问题,而不是 DPI 的问题。 - abarnert
那我应该保存成什么格式?png吗? - user984003
显示剩余2条评论
1个回答

13

1
质量对我来说是答案。 - Vadim
1
运行完美! - sdasara
1
img.save('test.jpg', quality=100, subsampling=0) - Atendra Gautam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接