如何编写批处理文件调用ImageMagick命令批量为图片添加对应字幕
Windows 环境批处理实现
- 先提前创建好用于存放输出文件的目标文件夹
- 将以下代码复制保存为
add_sub.bat,放在存储jpg和对应txt文件的源文件夹中,把代码里的你的目标文件夹绝对路径替换成你实际的输出目录路径,比如C:\processed_imgs
@echo off set "output_path=你的目标文件夹绝对路径" for %%f in (*.jpg) do ( :: 仅当存在同名txt文件时才执行处理 if exist "%%~nf.txt" ( convert "%%f" -background Khaki label:@"%%~nf.txt" -gravity Center -append "%output_path%\%%~nf_text.png" ) ) echo 所有文件处理完成 pause
- 双击运行bat文件即可完成批量处理
Linux / macOS 环境Shell脚本实现
- 提前创建好输出目录,将以下代码保存为
add_sub.sh放在源文件夹中,把代码里的/你的/输出/目录/路径替换成实际路径
#!/bin/bash output_dir="/你的/输出/目录/路径" for img_file in *.jpg; do txt_file="${img_file%.*}.txt" # 仅当存在同名txt文件时才执行处理 if [ -f "${txt_file}" ]; then convert "${img_file}" -background Khaki label:@"${txt_file}" -gravity Center -append "${output_dir}/${img_file%.*}_text.png" fi done echo "所有文件处理完成"
- 给脚本加执行权限:
chmod +x add_sub.sh - 运行脚本即可:
./add_sub.sh
注意事项
- 需确保ImageMagick已正确安装,且
convert命令已加入系统环境变量可全局调用 - 若需要匹配大写后缀的JPG文件,把脚本中
*.jpg改为*.jpg *.JPG即可 - 需保证txt文件编码和系统编码匹配,避免字幕出现乱码
内容的提问来源于stack exchange,提问作者Coke Lobos
相关产品推荐
相关产品推荐

