简介:python-长宽不同多张图片生成一列长图
python-长宽不同多张图片生成一列长图
在处理图像时,我们有时需要将多张不同大小和宽度的图片合并成一张长图。这种情况下,我们可以使用Python的PIL库来实现。下面是一个基本的Python脚本,可以将多张图片横向拼接成一张长图。
from PIL import Imageimport osdef concatenate_images(image_path_list, output_path):images = [Image.open(x) for x in image_path_list]# 获取第一张图片的宽度和高度width, height = images[0].size# 创建一个新的空白图片,准备绘制拼接后的图片new_image = Image.new('RGB', (width * len(image_path_list), height))# 拼接图片for i, image in enumerate(images):new_image.paste(image, (width * i, 0))# 保存图片new_image.save(output_path)# 图片所在路径image_dir = "/path/to/your/images"# 获取图片列表image_files = os.listdir(image_dir)image_path_list = [os.path.join(image_dir, img) for img in image_files]# 输出图片路径output_path = "/path/to/output/concatenated_image.jpg"# 调用函数进行图片拼接concatenate_images(image_path_list, output_path)
以上脚本的核心是concatenate_images函数,它接受一个包含图片路径的列表以及一个输出路径,然后拼接这些图片并将结果保存到输出路径。这个函数首先打开所有的图片,然后获取第一张图片的宽度和高度。然后,它创建一个新的空白图片,大小足以容纳所有拼接的图片。最后,它将每张图片粘贴到新图片上,并保存结果。
注意,这个脚本假设所有的图片都可以垂直方向上对齐。如果图片的宽度不同,你可能需要先调整它们的宽度。另外,此脚本并没有处理可能的图像加载错误和异常,因此在实际使用中,你可能需要添加适当的错误处理代码。