当我们处理图片时,有时需要对图片进行调整大小的操作,这时就可以使用Python Imaging Library(PIL)的Image.resize()方法。在本篇教程中,我们将会逐步讲解该方法的使用。
Image.resize()方法
定义
Image.resize()方法是PIL库中对图片进行调整大小的方法,其定义如下:
Image.resize(size, resample=None, box=None, reducing_gap=None)
- size:调整后的图片大小,可以是一个元组(width, height),或单一的整数,这时表示图片宽高等比例缩放;
- resample:调整图片大小时的抽样滤波方法,可取PIL.Image.NEAREST、PIL.Image.BOX、PIL.Image.BILINEAR、PIL.Image.HAMMING、PIL.Image.BICUBIC、PIL.Image.LANCZOS 等参数。默认为None;
- box:与截取图片时的box参数相同,表示调整后图片上的一个矩形区域,该区域为原图片上的一个矩形区域的子区域;
- reducing_gap:当进行高质量缩放时,该参数设置了像素压缩比率与像素数量的比率。默认为None,则由PIL自动计算。当设置为两个值(a, b)时,a表示压缩比率,b表示像素数量比率。
示例一
进行等比例缩放
下面示例展示了如何对一张图片进行等比例缩放。
from PIL import Image
# 打开图片
image = Image.open('image.jpg')
# 将图片等比例缩放至宽为500像素
new_image = image.resize((500, int((500 / image.size[0]) * image.size[1])))
# 显示缩放后的图片
new_image.show()
首先通过Image.open()方法打开需要调整大小的图片,然后将图片的宽调整为500像素,同时保持高宽比。实现方法是计算当前图片的宽高比例,然后根据比例计算出新图片的高。最后将原图片等比例缩放至宽为500像素的新图片并显示。
调整图片大小并保存
下面示例展示了如何调整一张图片的大小,并将其保存到本地。
from PIL import Image
# 打开图片
source_image = Image.open('source.jpg')
# 将图片调整至宽为500像素,高为400像素
new_image = source_image.resize((500, 400))
# 保存新图片
new_image.save('new_image.jpg')
利用resize()方法调整source_image的大小至500*400像素,然后将其保存为new_image.jpg,代码就可以实现。
结语
本篇文章中,我们讲了Python PIL库的resize()方法,包括其参数和返回值的详细介绍,同时给出了两个示例,希望对大家能够有所帮助。