图片处理库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.NEAREST
、Image.BOX
、Image.BILINEAR
、Image.HAMMING
、Image.BICUBIC
或Image.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()方法的详细介绍。使用该方法可以方便地对图片进行缩放等基本操作。