经常传资料需要拼接图片,拼接还会有各种问题,利用python生成一个简单脚本,垂直方向拼接文件目录下的多张图片
#注意事项,代码有问题,拼接最后一张如果显示不全,文件目录多放几张空白图片“垫高”
代码语言:txt复制from PIL import Image
import os
#注意事项,代码有问题,拼接最后一张如果显示不全,文件目录多放几张空白图片“垫高”
# 设置图片目录路径
image_folder = 'D:\临时\D\长拼图\' # 替换为你的图片文件夹路径
# 设置输出图片的路径
output_image_path = 'output_vertical_image.jpg'
# 获取目录下所有的JPG文件,确保排序
image_files = sorted([f for f in os.listdir(image_folder) if f.endswith('.jpg')])
image_paths = [os.path.join(image_folder, f) for f in image_files]
# 初始化最大宽度和总高度
max_width = 0
total_height = 0
# 计算所有图片的最大宽度和总高度
for img_path in image_paths:
with Image.open(img_path) as img:
max_width = max(max_width, img.width)
total_height = img.height
# 创建一个新的空白图片,用来拼接所有图片
new_image = Image.new('RGB', (max_width, total_height))
# 拼接图片
y_offset = 0
for img_path in image_paths:
with Image.open(img_path) as img:
# 调整图片大小以匹配最大宽度,保持原始宽高比
if img.width < max_width:
img = img.resize((max_width, int(img.height * (max_width / img.width))), Image.Resampling.LANCZOS)
# 粘贴图片
new_image.paste(img, (0, y_offset))
y_offset = img.height
# 保存拼接后的图片
new_image.save(output_image_path)
print(f'拼接完成,图片保存在:{output_image_path}')