You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编程拼接多张图片?Python实现20行10列图片合并咨询

Python实现批量图片拼接方案

完全可以用Python实现你的需求,全程无需手动操作办公软件,代码自动化完成所有步骤。

实现步骤

  1. 安装依赖库:使用Python的Pillow库处理图片,执行命令安装:
pip install pillow
  1. 核心代码逻辑:
    以下代码会自动读取指定目录下的PNG图片,按照20行10列的布局拼接,保留10像素的横向/行间距:
from PIL import Image
import os

# 固定参数配置
IMG_W, IMG_H = 705, 1000
COL_COUNT, ROW_COUNT = 10, 20
GAP_SIZE = 10

# 计算拼接后大图的总尺寸
total_width = IMG_W * COL_COUNT + GAP_SIZE * (COL_COUNT - 1)
total_height = IMG_H * ROW_COUNT + GAP_SIZE * (ROW_COUNT - 1)

# 创建空白背景图(白色,如需透明可改为RGBA模式)
final_img = Image.new('RGB', (total_width, total_height), (255, 255, 255))

# 获取所有PNG图片路径,按文件名排序
img_paths = [f for f in os.listdir('./') if f.lower().endswith('.png')]
img_paths.sort()

# 遍历图片并粘贴到对应位置
for idx, path in enumerate(img_paths):
    if idx >= COL_COUNT * ROW_COUNT:
        break  # 仅处理前200张图片
    
    # 计算当前图片的坐标
    row_idx = idx // COL_COUNT
    col_idx = idx % COL_COUNT
    pos_x = col_idx * (IMG_W + GAP_SIZE)
    pos_y = row_idx * (IMG_H + GAP_SIZE)
    
    try:
        with Image.open(path) as img:
            # 可选:校验图片尺寸是否符合要求
            if img.size != (IMG_W, IMG_H):
                print(f"跳过尺寸不符的图片:{path}")
                continue
            final_img.paste(img, (pos_x, pos_y))
    except Exception as e:
        print(f"处理图片{path}出错:{str(e)}")

# 保存最终拼接图
final_img.save('拼接完成图.png')
print("图片拼接完成!")

注意事项

  • 确保所有目标图片放在代码运行的目录下,若图片在其他文件夹,修改os.listdir('./')为对应文件夹路径(如os.listdir('./my_images'))。
  • 若需要透明背景,将Image.new('RGB', ...)改为Image.new('RGBA', (total_width, total_height), (255, 255, 255, 0))。
  • 文件名排序:如果图片命名带有序号(如pic_001.png),默认排序即可;若命名规则特殊,可自定义排序逻辑保证顺序正确。

内容的提问来源于stack exchange,提问作者Willy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 12:05:17