Python Pillow - 调整图像大小

2025年1月5日 | 阅读 3 分钟

Python Imaging Library (PIL) 库为您的 Python 解释器提供了额外的图像处理功能。它可以打开、编辑和保存多种图片文件格式。Pillow 是 PIL 的友好分支,通过引入新功能并更新以支持最新版本的 Python,使该库保持最新和活跃。

在图像处理中,调整照片大小是一项常见的任务。它可能对多种目的至关重要,例如创建缩略图、优化网络图像或为机器学习模型做准备。Pillow 提供了一种简单的方法来调整图像大小,而不会影响质量。

详细解释

步骤 1:安装 Pillow

在使用 Pillow 之前需要先安装它。可以使用 pip 进行安装。

代码

步骤 2:导入库

要使用 Pillow,您必须从 PIL 包中导入 Image 模块到您的 Python 脚本中。

代码

步骤 3:打开图像

使用 Image.open() 函数加载图像。此函数返回一个 Image 对象。

代码

步骤 4:调整图像大小

要更改图片的大小,请使用 Pillow 的 resize() 函数。此过程需要一个指定新尺寸(宽度、高度)的元组。

代码

步骤 5:保持纵横比

thumbnail() 方法允许您在保持图像纵横比的情况下调整其大小。使用提供最大尺寸(宽度、高度)的元组,此方法会调整图像大小以适应此框,同时保持纵横比。

代码

请记住,thumbnail() 不会创建新的图像对象,而是就地修改图像。

步骤 6:使用各种重采样滤波器

您可以通过指定 resize() 方法的重采样滤波器来调整缩放图像的质量。Pillow 提供了多种重采样滤波器,例如:

  • NEAREST:最近邻(适用于像素艺术)
  • BOX:盒式滤波器
  • BILINEAR:双线性插值
  • HAMMING:汉明滤波器
  • BICUBIC:双三次插值
  • LANCZOS:Lanczos 滤波器(高质量)

resize() 方法允许您将重采样滤波器作为参数传递。

代码

步骤 7:保存调整大小后的图像

调整大小后,您可以使用 save() 方法保存图像。

代码

完整示例

将所有内容放在一起,这是一个完整的示例:

代码

输出

原始图像

Python Pillow - Resizing an Image

调整大小后的图像

Python Pillow - Resizing an Image

保持纵横比不变

如果我们想在保持纵横比不变的情况下更改图像的尺寸,可以这样做:

代码

输出

原始图像

Python Pillow - Resizing an Image

保持纵横比的调整大小后的图像

Python Pillow - Resizing an Image

高级调整大小技术

1. thumbnail 方法

thumbnail 方法在就地调整图像大小以适应指定尺寸的同时,保持纵横比不变。这对于创建缩略图而不会扭曲图像非常有用。

2. 裁剪和调整大小

有时您想在放大图像之前先裁剪图像的某个区域。Pillow 允许您在图像上使用 crop 方法。

3. 使用抗锯齿

抗锯齿对于避免图像缩放过程中的锯齿状伪影至关重要。Image.LANCZOS 滤波器通过使用抗锯齿技术生成高质量图像。此滤波器对于缩小照片非常有用。

结论

总之,Python Pillow 包是一个强大而灵活的图像处理工具,它提供了各种缩放功能。无论您需要调整单个图像的大小、保持纵横比、制作缩略图、裁剪和调整大小,还是批量处理图像,Pillow 都提供了实现高质量结果所需的工具和滤波器。通过利用这些功能,您可以有效地管理应用程序中的各种图像调整大小任务,确保您的照片符合要求的规格和质量标准。