【问题标题】:Python PIL, preserve quality when resizing and saving [duplicate]Python PIL,在调整大小和保存时保持质量[重复]
【发布时间】:2013-10-15 18:19:03
【问题描述】:

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

但是,分辨率真的很差。我看到它已将 dpi 从 180 更改为 96。如果我在 Windows Paint 之类的程序中调整图像大小,那么它会保持 180 dpi。在我的网站上,这个经过 Paint 调整大小的图像看起来好多了。 (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-resized 图像开始(因此不在 PIL 中调整图像大小),它仍然将其保存为糟糕的质量 96 dpi (16kb) 而不是保持原样。

【问题讨论】:

  • 这是我尝试过的解决方案,但没有奏效
  • Paint 只是忽略 DPI。但是网络浏览器也是如此,除非你专门做 Retina 特定(或非 Apple 等效)的 CSS。如果它是 250 像素宽,并将其放置在 250 像素的img 标签中,则 DPI 无关紧要。
  • 有些不同,因为 40kb 的图像看起来比 16kb 的图像好得多,尽管两者都是 250px 宽。
  • @user984003: 你用什么格式保存文件?是JPG还是其他有损的?
  • 它以 jpg 开头,这就是我保存的格式。

标签: python python-imaging-library


【解决方案1】:

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

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

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

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

【讨论】:

  • 质量是我的答案。
  • 完美运行!
猜你喜欢
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 2021-03-16
  • 1970-01-01
  • 2013-02-09
  • 2014-10-04
  • 2018-07-31
  • 2011-06-23
相关资源
最近更新 更多