图片生成:实现长宽不同多张图片的一列长图

作者:很酷cat2023.12.11 13:07浏览量:6

简介:python-长宽不同多张图片生成一列长图

python-长宽不同多张图片生成一列长图
在处理图像时,我们有时需要将多张不同大小和宽度的图片合并成一张长图。这种情况下,我们可以使用Python的PIL库来实现。下面是一个基本的Python脚本,可以将多张图片横向拼接成一张长图。

  1. from PIL import Image
  2. import os
  3. def concatenate_images(image_path_list, output_path):
  4. images = [Image.open(x) for x in image_path_list]
  5. # 获取第一张图片的宽度和高度
  6. width, height = images[0].size
  7. # 创建一个新的空白图片,准备绘制拼接后的图片
  8. new_image = Image.new('RGB', (width * len(image_path_list), height))
  9. # 拼接图片
  10. for i, image in enumerate(images):
  11. new_image.paste(image, (width * i, 0))
  12. # 保存图片
  13. new_image.save(output_path)
  14. # 图片所在路径
  15. image_dir = "/path/to/your/images"
  16. # 获取图片列表
  17. image_files = os.listdir(image_dir)
  18. image_path_list = [os.path.join(image_dir, img) for img in image_files]
  19. # 输出图片路径
  20. output_path = "/path/to/output/concatenated_image.jpg"
  21. # 调用函数进行图片拼接
  22. concatenate_images(image_path_list, output_path)

以上脚本的核心是concatenate_images函数,它接受一个包含图片路径的列表以及一个输出路径,然后拼接这些图片并将结果保存到输出路径。这个函数首先打开所有的图片,然后获取第一张图片的宽度和高度。然后,它创建一个新的空白图片,大小足以容纳所有拼接的图片。最后,它将每张图片粘贴到新图片上,并保存结果。
注意,这个脚本假设所有的图片都可以垂直方向上对齐。如果图片的宽度不同,你可能需要先调整它们的宽度。另外,此脚本并没有处理可能的图像加载错误和异常,因此在实际使用中,你可能需要添加适当的错误处理代码。