使用 Python 调整图像大小

快速解释如何在 Python 中调整图像大小,同时保持相同的宽高比。
还没有读者喜欢这篇文章。
Python in a tree

来自 Wikimedia Commons 的 CC0 原始图像

我热爱 Python,并且已经学习了一段时间。不久前,我编写了一个 Python 脚本,需要在其中调整一批图像的大小,同时保持宽高比(比例)不变。所以我四处寻找,找到了 Pillow,一个 Python 图像处理库,也是一个名为 PIL 的旧库的“友好分支”。 

要安装 Pillow,请使用 Python 的 pip 模块

$ python3 -m pip install Pillow

按宽度缩放

这是一个使用 Pillow 模块调整图像大小的基本脚本

from PIL import Image

basewidth = 300
img = Image.open('fullsized_image.jpg')
wpercent = (basewidth / float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
img = img.resize((basewidth, hsize), Image.ANTIALIAS)
img.save('resized_image.jpg')

这几行 Python 代码使用 Pillow 将图像 (fullsized_image.jpg) 调整为宽度为 300 像素,宽度在变量 basewidth 中设置,高度与新宽度成比例。比例高度的计算方法是确定 300 像素占原始宽度 (img.size[0]) 的百分比,然后将原始高度 (img.size[1]) 乘以该百分比。结果高度值保存在变量 hsize 中。

如果您的图像需要不同的宽度,您可以将 basewidth 更改为任何其他数字。另外,请注意我将调整大小后的图像保存在不同的名称 resized_image.jpg 下,因为我也想保留完整尺寸的图像 (fullsized_image.jpg)。当然,您不必这样做。如果您想用调整大小后的图像覆盖完整尺寸的图像,可以使用相同的文件名来覆盖它。

按高度缩放

如果高度是固定的,宽度是成比例变化的,那么情况几乎相同,您只需要稍微调整一下即可

blog and republished under Creative Commons with permission.

This article was updated in January 2021 by the editor.

标签
User profile image.
一位卢旺达尼日利亚系统管理员,也是 Linux 和 FOSS 爱好者,居住在卢旺达基加利。我专注于 Linux 服务器管理。我最喜欢的发行版是 Linux Mint 和 Gentoo。我喜欢用 Python 编码并使用 Plone。我目前正在自学 Django。我会说流利的德语,并在德国汉堡应用科学大学学习了计算机科学。

贡献者

3 条评论

更有趣的是如何使用 Go、Perl、Ruby 或 Python 正确调整视频大小。

有趣。真的很有帮助。

嗯。用于安装 PIL 的终端命令在我的 Mac 上不起作用(尽管此命令旨在用于 Debian 系统)。对于任何运行 Mac 的人,您可以使用此命令安装 PIL 的“友好分支” “Pillow”(也与 Python 3.0+ 兼容):sudo pip install Pillow
也许我们在 Mac OSX 上应该使用这个?
apt-get install python-imaging

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.