多张图片拼接合并组合成一张图片

图像处理 wes 7 days ago (2026-09-14) 4 views
📑 本文导航

需求:100 张图,第 1+2 上下拼成图 1、3+4 拼成图 2…… 一共输出 50 张(两两纵向拼接)

重点:不是全部 100 张拼成一张长图,而是每 2 张一组上下拼接,批量一次性生成 50 张结果图

✅ 首选(Windows,最简单图形界面)

1. IrfanView(免费老牌看图软件,强烈推荐)

可以批量分组拼接,完美满足「两张一组上下合并」

  • 优点:免费无水印、轻量、支持大量图片、可自动按文件名排序、纵向拼接(上下堆叠),一次性批量输出
  • 使用思路:
    1. 把 100 张图片命名好 001.jpg、002.jpg……100.jpg(保证顺序正确)
    2. 打开 IrfanView → 批量转换 / 重命名 → 高级选项 → 拼接图像,设置:垂直拼接,每组 2 张
    3. 设置输出文件夹,一键执行,自动生成 50 张合并后的图片

2. XnView MP(跨平台 Windows/Mac,免费)

和 IrfanView 同类,可视化批量图像处理,分组拼图功能。 适合 Mac 用户,操作逻辑差不多,支持按文件名排序,两两纵向拼接批量导出。

✅ 备选:小工具(专门批量拼图)

  • 哈皮批量拼图工具:界面直接设置「每组 2 张,上下拼接」,导入文件夹一键生成 50 张图,非常贴合你的需求

注意:网上下载这种小工具留意捆绑软件。

✅ 零安装:如果会一点点 Python(最稳定,无任何软件下载)

用 Pillow 脚本,直接读取文件夹图片,自动两两上下拼接,输出 50 张,完全可控,不会乱序。

from PIL import Image
import os

img_dir = "./pic"  #原图文件夹
out_dir = "./out"
os.makedirs(out_dir, exist_ok=True)
files = sorted([f for f in os.listdir(img_dir) if f.endswith(("jpg","png","jpeg"))])

for i in range(0, len(files), 2):
    if i+1 >= len(files): break
    im1 = Image.open(os.path.join(img_dir, files[i]))
    im2 = Image.open(os.path.join(img_dir, files[i+1]))
    #统一宽度,上下拼接
    w = max(im1.width, im2.width)
    h = im1.height + im2.height
    new_img = Image.new("RGB", (w, h), "white")
    new_img.paste(im1, (0,0))
    new_img.paste(im2, (0, im1.height))
    new_img.save(os.path.join(out_dir, f"merge_{i//2+1}.jpg"))

只需要:把图片放进pic文件夹,运行脚本,结果自动到out文件夹。

❌ 其他说明

  1. 美图秀秀、WPS 图片:只能手动一次拼 2 张,100 张要手动操作 50 次,不适合批量;
  2. 在线网页拼接工具:大多只能一次性合并成一张大图,不能自动分组生成 50 张,上传 100 张大图容易卡顿、内存溢出;
  3. Photoshop:动作批量比较麻烦,学习成本高。

💡 重要前置提醒

图片文件名一定要排序(001、002、003…),软件会按文件名顺序分组,否则会拼错配对。

如果你用 Windows,优先直接装 IrfanView;如果你是 Mac,选 XnView MP