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

如何按指定间隔n及起止文件选择编号图片并水平拼接

自动生成图片路径列表并完成拼接

步骤说明

  1. 定义三个可灵活调整的核心参数:间隔n、起始文件名start_file、结束文件名end_file
  2. 从文件名中提取对应的起始编号和结束编号
  3. 利用range生成符合间隔要求的编号序列
  4. 格式化生成完整的图片路径列表,替换原代码中手动指定的列表

修改后的完整代码

import sys
from PIL import Image

# 可灵活修改的参数
n = 5  # 图片间隔
start_file = 'frame5.jpg'  # 起始文件
end_file = 'frame30.jpg'  # 结束文件

# 从文件名提取起始/结束编号
start_num = int(start_file.split('frame')[1].replace('.jpg', ''))
end_num = int(end_file.split('frame')[1].replace('.jpg', ''))

# 自动生成符合规则的图片路径列表
image_paths = [f'frame{num}.jpg' for num in range(start_num, end_num, n)]
images = [Image.open(path) for path in image_paths]

widths, heights = zip(*(i.size for i in images))

total_width = sum(widths)
max_height = max(heights)

new_im = Image.new('RGB', (total_width, max_height))

x_offset = 0
for im in images:
    new_im.paste(im, (x_offset, 0))
    x_offset += im.size[0]

new_im.save('00final.png')

关键逻辑解释

  • 编号提取:通过拆分文件名、移除后缀的方式,将文件名转换为可计算的整数编号
  • 序列生成:range(start_num, end_num, n)会生成从起始编号开始、步长为n且小于结束编号的整数序列,完全匹配你需要的筛选规则(比如示例1中range(5,30,5)得到5,10,15,20,25;示例2中range(0,25,7)得到0,7,14,21)
  • 路径格式化:用f-string快速将编号转换为标准格式的图片路径

你只需修改n、start_file、end_file三个参数,就能适配不同的筛选需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:30:55