09-调整图像大小
19.2.4 调整图像大小
resize()
方法在 Image
对象上调用,返回指定宽度和高度的一个新 Image
对象。它接收两个整数的元组作为参数,表示返回图像的新高度和宽度。在交互式环境中输入以下代码:
>>> from PIL import Image
>>> catIm = Image.open('zophie.png')
❶ >>> width, height = catIm.size
❷ >>> quartersizedIm = catIm.resize((int(width / 2), int(height / 2)))
>>> quartersizedIm.save('quartersized.png')
❸ >>> svelteIm = catIm.resize((width, height + 300))
>>> svelteIm.save('svelte.png')
这里,我们将 catIm.size
元组中的两个值赋给变量 width
和 height
❶。使用 width
和 height
,而不是 catIm.size[0]
和 catIm.size[1]
,这可以让接下来的代码更易读。
第一个 resize()
调用传入 int(width / 2)
作为新宽度,传入 int(height / 2)
作为新高度❷,因此 resize()
返回的 Image
对象具有原始图像的一半长度和宽度,是原始图像大小的1/4。 resize()
方法的元组参数中只允许使用整数,这就是为什么需要调用 int()
对两个除以2的值取整。
这个大小调整保持了相同比例的宽度和高度,但传入 resize()
的新宽度和高度不必与原始图像成比例。 svelteIm
变量保存了一个 Image
对象,宽度与原始图像相同,但高度增加了300像素❸,让Zophie显得更苗条。
请注意, resize()
方法不会在原图上修改 Image
对象,而是返回一个新的 Image
对象。