使用pil实现多张图片垂直合并
时间: 2023-09-07 20:01:26 浏览: 55
使用PIL库,可以很方便地实现多张图片的垂直合并。下面是一个简单的例子:
```python
from PIL import Image
def merge_images_vertically(image_list):
# 获取每张图片的宽度和高度
widths, heights = zip(*(img.size for img in image_list))
# 计算合并后图片的宽度和高度
total_width = max(widths)
total_height = sum(heights)
# 创建新的空白图片
merged_image = Image.new('RGB', (total_width, total_height))
# 逐个将每张图片粘贴到新图片上
y_offset = 0
for image in image_list:
merged_image.paste(image, (0, y_offset))
y_offset += image.size[1] # 更新纵坐标偏移量
return merged_image
# 读取需要合并的图片
image1 = Image.open('image1.jpg')
image2 = Image.open('image2.jpg')
image3 = Image.open('image3.jpg')
# 调用函数进行垂直合并
merged_image = merge_images_vertically([image1, image2, image3])
# 保存合并后的图片
merged_image.save('merged_image.jpg')
```
上述代码首先导入了PIL库中的Image模块,然后定义了一个`merge_images_vertically`函数来实现图片的垂直合并。该函数接受一个图片列表作为参数,计算出合并后图片的尺寸,并创建一个空白的新图片。接着,通过循环遍历图片列表,将每张图片逐个粘贴到新图片上,并更新纵坐标偏移量。最后,返回合并后的图片对象。
在代码示例中,我们读取了三张图片(image1.jpg、image2.jpg和image3.jpg),将它们作为参数传递给`merge_images_vertically`函数,得到了合并后的图片对象`merged_image`。最后,将合并后的图片保存为`merged_image.jpg`。