详解Python PIL Image.resize()方法

  • Post category:Python

图片处理库Pillow(Python Imaging Library,简称PIL)中提供了Image.resize()方法,可用于调整图像大小。下面是对该方法的详细讲解:

方法介绍

Image.resize(size, resample=None, box=None, reducing_gap=None)

参数说明:

  • size:重新调整的大小,以像素为单位,可为元组(width, height)或整数。若为整数,则表示将图片调整至宽度和高度均为该值的正方形。若仅提供宽度或高度,则根据原图片的长宽比例尺寸自适应缩放。
  • resample:可选参数,默认为None,表示采用默认的重采样方法,即Image.BICUBIC。可取的值有:Image.NEARESTImage.BOXImage.BILINEARImage.HAMMINGImage.BICUBICImage.LANCZOS。其中,Image.NEAREST表示最近邻插值法,Image.BOX表示低质量的类似像素重构算法,Image.BILINEAR表示线性插值法,Image.HAMMING表示汉明窗口函数插值法,Image.BICUBIC表示三次卷积插值法,Image.LANCZOS表示Lanczos窗口函数插值法。
  • box:一个四元组,包含左、上、右、下四个坐标,用于表示要处理的区域。以像素为单位。
  • reducing_gap:可选参数,默认为None,表示若需要缩小图片,则在每次减半前先放大等比例缩小该次需要缩小的大小,再按照指定resample处理缩小后的图片。

注意,resize()方法会返回一个新的Image对象,原始Image对象不会被修改。

示例说明

下面分别给出两个使用示例:

例1

from PIL import Image

img = Image.open('input.png')
width, height = img.size
new_size = (width // 2, height // 2)

out = img.resize(new_size)

out.save('output.jpg', quality=100)

该示例中,首先打开了一张名为’input.png’的图片,并获取了图片大小。接着,将图片大小缩小为原来的一半,并保存为’output.jpg’。需要注意的是,保存图片时设置的品质参数仅对jpg格式有效(quality 默认为75)。

例2

from PIL import Image

img = Image.open('input.png')
width, height = img.size
new_width = 400
new_height = new_width * height // width

out = img.resize((new_width, new_height), resample=Image.BICUBIC)

out.save('output.png')

该示例中,同样是打开一张名为’input.png’的图片,并获取图片的原大小。接着,将宽度缩小为400,并根据原图片的长宽比例计算出新的高度。最后,使用三次卷积插值法Image.BICUBIC对图片进行高质量缩放,并保存为’output.png’。由于保存的是png格式的图片,因此不需要设置品质参数。

以上就是对于Python PIL Image.resize()方法的详细介绍。使用该方法可以方便地对图片进行缩放等基本操作。