详解Python PIL Image.thumbnail() 方法

  • Post category:Python

当你需要处理大型图像文件时,有时需要调整图像的大小以便于在特定场景下使用。Python Pillow库(PIL库)的Image类提供了thumbnail()方法,可以对图像做出缩小或放大的操作,同时可以保持原始图像的纵横比例。

下面是对thumbnail()方法的完整攻略,包括方法的语法、参数、返回值以及两个示例说明:

语法

thumbnail()方法用于调整图像大小,其语法如下:

Image.thumbnail(size, resample=None)

参数说明

thumbnail()方法有两个参数:

  • size:要调整的新尺寸,可以是以(width, height)形式表示的元组,也可以是代表百分比的单个整数参数。参数值是(width, height)元组结构时,以保持原始图像的长宽比例的方式调整图像的大小,使得宽度不大于width,高度不大于height。若传入整数类型参数,则其值表示缩放后图像宽度与高度的比例。
  • resample:指定缩放时采用的方法。此参数不是必需的,若不提供则默认为图像的底层库,否则可以在Image.LANCZOS, Image.BOX, Image.NEAREST等方法中选择其中之一。

返回值说明

thumbnail()方法没有显式的返回值,图片大小被独立地缩放以适应给定的新维度,直接修改源图像。

示例说明

下面我们将演示如何使用thumbnail()方法实现两个不同的示例。假设我们有一张1200720的图片,并需要将它调整至600360大小

示例一:使用(width, height)形式作为参数

from PIL import Image

image = Image.open("example.jpg")
image.thumbnail((600, 360))
image.show()

输出的结果是在原图基础上,将图大小缩小至600360,并按位加上黑色背景。如果原图的宽高比例与600360不同,则缩小后大小会更小。

示例二:使用整数类型参数

from PIL import Image

image = Image.open("example.jpg")
image.thumbnail(0.5)
image.show()

输出的结果是按照比例将图片大小缩小为其一半,并按位加上黑色背景。如果原始图像的宽高比与给定的比例不同,则缩放后的图像大小会更小。

注意:在Resize方法中也可以使用类似的方式,这两种方法的区别在于thumbnail 方法会将最终图像大小调整至指定的大小范围内,并将未覆盖区域填充为黑色,而 Resize方法则允许图像大小缩小时可以采用裁切等方法。