图片生成:创新与技术的完美结合
2023.11.28 16:43浏览量:5简介:python-长宽不同多张图片生成一列长图
python-长宽不同多张图片生成一列长图
在处理图像时,我们有时需要将多张不同大小和宽度的图片合并成一张长图。这种情况下,我们可以使用Python的PIL(Pillow)库来实现这个需求。下面是一个基本的示例,演示如何将多张不同尺寸的图片排成一列长图。
首先,我们需要安装Pillow库。如果你还没有安装,可以通过以下命令安装:
pip install pillow
然后,我们可以使用以下Python代码来实现这个功能:
from PIL import Image
import os
def combine_images(image_path_list, output_path, columns=1):
# 获取图片列表并计算总的宽度和高度
widths, heights = zip(*(i.size for i in Image.open(image_path_list)))
total_width = sum(widths)
max_height = max(heights)
# 创建一个新的空白图片,大小与所有图片的宽度和最大高度相同
new_image = Image.new('RGB', (total_width, max_height))
# 插入图片到新图片中,位置根据列数进行分配
x_offset = 0
for img in image_path_list:
new_image.paste(Image.open(img), (x_offset, 0))
x_offset += widths[image_path_list.index(img)]
# 保存新图片到输出路径
new_image.save(output_path)
# 图片路径列表,按照你想要的顺序排列
image_paths = ['image1.jpg', 'image2.jpg', 'image3.jpg']
# 输出路径
output_path = 'combined.jpg'
# 调用函数进行合并,列数为1表示所有图片都在一行中排列
combine_images(image_paths, output_path, columns=1)
以上代码会按照顺序将图片横向拼接起来。如果你想在每行显示多张图片,可以调整columns
参数的值。例如,如果你想每行显示2张图片,可以将columns
设置为2。注意,当调整columns
参数时,可能需要手动调整每张图片的位置,以确保它们在正确的位置上。
发表评论
登录后可评论,请前往 登录 或 注册