首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python垂直拼接多张图片

python垂直拼接多张图片

原创
作者头像
用户11050980
修改于 2024-08-19 20:25:04
修改于 2024-08-19 20:25:04
1.3K0
举报

经常传资料需要拼接图片,拼接还会有各种问题,利用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}')

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档