本文目录导读:

- 使用 Python + PIL(Pillow)库
- 使用 ImageMagick 命令行工具
- 使用 FFmpeg(适合视频帧或大量图片)
- 批处理脚本(Windows .bat 或 Linux shell)
- 在线API或工具
- 注意事项
是的,脚本可以自动拼接多张图片,实现方式取决于你的具体需求(如拼接方向、格式处理等),以下是几种常见的方法:
使用 Python + PIL(Pillow)库
这是最灵活的方式,适合需要自定义逻辑的场景。
from PIL import Image
import os
def concatenate_images(image_paths, direction='horizontal'):
"""
拼接多张图片
:param image_paths: 图片路径列表
:param direction: 'horizontal' 水平拼接, 'vertical' 垂直拼接
"""
images = [Image.open(path) for path in image_paths]
# 计算拼接后的尺寸
widths, heights = zip(*(i.size for i in images))
if direction == 'horizontal':
total_width = sum(widths)
max_height = max(heights)
new_image = Image.new('RGB', (total_width, max_height))
x_offset = 0
for img in images:
new_image.paste(img, (x_offset, 0))
x_offset += img.width
else: # vertical
total_height = sum(heights)
max_width = max(widths)
new_image = Image.new('RGB', (max_width, total_height))
y_offset = 0
for img in images:
new_image.paste(img, (0, y_offset))
y_offset += img.height
return new_image
# 使用示例
image_files = ['img1.jpg', 'img2.jpg', 'img3.jpg']
result = concatenate_images(image_files, direction='horizontal')
result.save('combined.jpg')
使用 ImageMagick 命令行工具
适合批量处理,无需编程:
# 水平拼接 convert image1.jpg image2.jpg image3.jpg +append result.jpg # 垂直拼接 convert image1.jpg image2.jpg image3.jpg -append result.jpg # 自动调整尺寸统一后再拼接 convert image1.jpg image2.jpg -resize 800x600! -append result.jpg
使用 FFmpeg(适合视频帧或大量图片)
# 水平拼接(两列) ffmpeg -i img1.jpg -i img2.jpg -filter_complex hstack result.jpg # 垂直拼接 ffmpeg -i img1.jpg -i img2.jpg -filter_complex vstack result.jpg # 2x2网格拼接 ffmpeg -i img1.jpg -i img2.jpg -i img3.jpg -i img4.jpg \ -filter_complex "[0][1]hstack[t];[2][3]hstack[b];[t][b]vstack" output.jpg
批处理脚本(Windows .bat 或 Linux shell)
Windows批处理(需要ImageMagick):
@echo off setlocal enabledelayedexpansion set "files=" for %%f in (*.jpg) do set "files=!files! %%f" convert %files% +append combined.jpg
Linux/Mac shell脚本:
#!/bin/bash # 拼接当前目录所有jpg图片 convert *.jpg +append combined.jpg
在线API或工具
- Canva API:适合自动化设计需求
- Cloudinary:支持URL参数拼接图片
- img2go.com:提供在线拼接功能
注意事项
- 尺寸不一致:需要决定是否拉伸/裁剪/留白对齐
- 格式支持:确保脚本支持你的图片格式(JPG/PNG/WebP等)
- 内存限制:拼接大量大图时注意内存占用
最推荐的方式是Python+Pillow,因为它可以精确控制拼接逻辑,且跨平台兼容,如果你有更具体的需求(如自适应宽度、添加间距等),我可以提供针对性的代码示例。