当前位置:嗨网首页>书籍在线阅读

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 元组中的两个值赋给变量 widthheight ❶。使用 widthheight ,而不是 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 对象。