详解用Python Pillow 改变图像的宽度和高度的比例

  • Post category:Python

当你想要将一张图片的大小缩放到一定的比例时,可以使用Python图像处理库的Pillow模块,它提供了专门的方法和函数来改变图片的大小和比例。下面是使用Pillow模块改变图片比例和大小的完整攻略:

安装Pillow

使用Pillow之前,需要先安装它。在命令行窗口中输入以下命令:

pip install Pillow

改变图片宽度和高度

使用Pillow修改图片大小的方法是通过打开该图像文件,调用其中的resize(width, height)方法实现的。具体步骤如下:

  1. 导入Pillow库
from PIL import Image
  1. 打开需要修改的图片
image = Image.open('path/to/image/file')
  1. 修改图片大小
new_size = (new_width, new_height)
new_image = image.resize(new_size)

其中,new_width和new_height是修改后的图片大小,可以通过对原始图片宽度和高度进行乘除计算来实现比例变化。

  1. 保存新的图片
new_image_file = 'path/to/new/image/file'
new_image.save(new_image_file)

下面是一个完整的示例代码,将图片缩小为1/4:

from PIL import Image

image = Image.open('image.jpg')

# 计算新大小
width, height = image.size
new_size = (int(width / 4), int(height / 4))

# 缩放图片
new_image = image.resize(new_size)

# 保存新图片
new_file = 'new_image.jpg'
new_image.save(new_file)

改变图片比例

如果你只想改变图片的比例,即在保持宽度和高度的比例不变的情况下,只改变其中一个的大小,可以使用ImageOps模块中的scale函数,它会自动计算出其他变化后的大小。具体步骤如下:

  1. 导入ImageOps库
from PIL import Image, ImageOps
  1. 打开需要修改的图片
image = Image.open('path/to/image/file')
  1. 修改图片比例
new_size = (new_width, new_height)
new_image = ImageOps.scale(image, new_size)

其中,new_width和new_height是修改后的图片大小的其中一个,另一个会自动计算得到。

  1. 保存新的图片
new_image_file = 'path/to/new/image/file'
new_image.save(new_image_file)

下面是一个完整的示例代码,将图片宽度变为原来的一半,高度自动计算:

from PIL import Image, ImageOps

image = Image.open('image.jpg')

# 计算新宽度
width, height = image.size
new_width = int(width / 2)

# 缩放图片
new_size = (new_width, 0)
new_image = ImageOps.scale(image, new_size)

# 保存新图片
new_file = 'new_image.jpg'
new_image.save(new_file)

通过上述攻略,你可以轻松地使用Python的Pillow模块来改变图片的宽度和高度比例,细节和参数也告诉了你了,可以根据自己的需要进行修改。