如何编程拼接多张图片?Python实现20行10列图片合并咨询
Python实现批量图片拼接方案
完全可以用Python实现你的需求,全程无需手动操作办公软件,代码自动化完成所有步骤。
实现步骤
- 安装依赖库:使用Python的Pillow库处理图片,执行命令安装:
pip install pillow
- 核心代码逻辑:
以下代码会自动读取指定目录下的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
相关产品推荐
相关产品推荐

