logo

图片生成:创新与技术的完美结合

作者:十万个为什么2023.11.28 16:43浏览量:5

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

python-长宽不同多张图片生成一列长图
在处理图像时,我们有时需要将多张不同大小和宽度的图片合并成一张长图。这种情况下,我们可以使用Python的PIL(Pillow)库来实现这个需求。下面是一个基本的示例,演示如何将多张不同尺寸的图片排成一列长图。
首先,我们需要安装Pillow库。如果你还没有安装,可以通过以下命令安装:

  1. pip install pillow

然后,我们可以使用以下Python代码来实现这个功能:

  1. from PIL import Image
  2. import os
  3. def combine_images(image_path_list, output_path, columns=1):
  4. # 获取图片列表并计算总的宽度和高度
  5. widths, heights = zip(*(i.size for i in Image.open(image_path_list)))
  6. total_width = sum(widths)
  7. max_height = max(heights)
  8. # 创建一个新的空白图片,大小与所有图片的宽度和最大高度相同
  9. new_image = Image.new('RGB', (total_width, max_height))
  10. # 插入图片到新图片中,位置根据列数进行分配
  11. x_offset = 0
  12. for img in image_path_list:
  13. new_image.paste(Image.open(img), (x_offset, 0))
  14. x_offset += widths[image_path_list.index(img)]
  15. # 保存新图片到输出路径
  16. new_image.save(output_path)
  17. # 图片路径列表,按照你想要的顺序排列
  18. image_paths = ['image1.jpg', 'image2.jpg', 'image3.jpg']
  19. # 输出路径
  20. output_path = 'combined.jpg'
  21. # 调用函数进行合并,列数为1表示所有图片都在一行中排列
  22. combine_images(image_paths, output_path, columns=1)

以上代码会按照顺序将图片横向拼接起来。如果你想在每行显示多张图片,可以调整columns参数的值。例如,如果你想每行显示2张图片,可以将columns设置为2。注意,当调整columns参数时,可能需要手动调整每张图片的位置,以确保它们在正确的位置上。

相关文章推荐

发表评论