简介在数字图像处理中,图片尺寸调整是一项基础且常见的操作。Python作为一种强大的编程语言,提供了多种库来实现图片的缩放与裁剪。本文将详细介绍如何使用Python中的Pillow库(PIL的分支)来...
在数字图像处理中,图片尺寸调整是一项基础且常见的操作。Python作为一种强大的编程语言,提供了多种库来实现图片的缩放与裁剪。本文将详细介绍如何使用Python中的Pillow库(PIL的分支)来轻松调整图片尺寸。
在使用Pillow库之前,确保已经安装了该库。可以通过以下命令进行安装:
pip install pillow以下是一个示例代码,展示如何按照最大边长等比例缩放图片尺寸:
from PIL import Image
def resize_image_keep_ratio(input_image_path, output_image_path, max_size): """ 按照最大边长等比例缩放图片尺寸并保存。 参数: input_image_path (str): 输入图片的路径。 output_image_path (str): 输出缩放后图片的保存路径。 max_size (int): 图片允许的最大边长(宽度或高度),单位为像素。 """ # 打开图片 image = Image.open(input_image_path) width, height = image.size print("原图width:%s height:%s" % (width, height)) # 计算缩放比例 ratio = min(max_size / width, max_size / height) new_width = int(width * ratio) new_height = int(height * ratio) # 缩放图片 resized_image = image.resize((new_width, new_height), Image.Resampling.LANCZOS) resized_image.save(output_image_path)
# 使用示例
resize_image_keep_ratio("input.jpg", "output.jpg", 800)以下是一个示例代码,展示如何指定新的宽度和高度来缩放图片:
from PIL import Image
def resize_image_fixed_size(input_image_path, output_image_path, new_width, new_height): """ 指定新的宽度和高度来缩放图片。 参数: input_image_path (str): 输入图片的路径。 output_image_path (str): 输出缩放后图片的保存路径。 new_width (int): 新的宽度,单位为像素。 new_height (int): 新的高度,单位为像素。 """ # 打开图片 image = Image.open(input_image_path) # 缩放图片 resized_image = image.resize((new_width, new_height), Image.Resampling.LANCZOS) resized_image.save(output_image_path)
# 使用示例
resize_image_fixed_size("input.jpg", "output.jpg", 800, 600)以下是一个示例代码,展示如何裁剪图片的指定区域:
from PIL import Image
def crop_image(input_image_path, output_image_path, left, upper, right, lower): """ 裁剪图片的指定区域。 参数: input_image_path (str): 输入图片的路径。 output_image_path (str): 输出裁剪后图片的保存路径。 left (int): 裁剪区域的左边界,单位为像素。 upper (int): 裁剪区域的顶部边界,单位为像素。 right (int): 裁剪区域的右边界,单位为像素。 lower (int): 裁剪区域的底部边界,单位为像素。 """ # 打开图片 image = Image.open(input_image_path) # 裁剪图片 cropped_image = image.crop((left, upper, right, lower)) cropped_image.save(output_image_path)
# 使用示例
crop_image("input.jpg", "output.jpg", 50, 50, 350, 350)以下是一个示例代码,展示如何将图片裁剪为指定尺寸:
from PIL import Image
def crop_image_to_size(input_image_path, output_image_path, new_width, new_height): """ 将图片裁剪为指定尺寸。 参数: input_image_path (str): 输入图片的路径。 output_image_path (str): 输出裁剪后图片的保存路径。 new_width (int): 新的宽度,单位为像素。 new_height (int): 新的高度,单位为像素。 """ # 打开图片 image = Image.open(input_image_path) width, height = image.size # 计算裁剪区域 left = (width - new_width) // 2 upper = (height - new_height) // 2 right = left + new_width lower = upper + new_height # 裁剪图片 cropped_image = image.crop((left, upper, right, lower)) cropped_image.save(output_image_path)
# 使用示例
crop_image_to_size("input.jpg", "output.jpg", 300, 200)通过以上示例,我们可以看到使用Python和Pillow库调整图片尺寸和裁剪是非常简单和高效的。这些技巧可以帮助我们在各种应用场景中轻松处理图像。