如何编写Windows batch脚本调用ImageMagick按文件名匹配批量叠加PNG
批量PNG图片叠加Windows批处理脚本
前置要求
- 已安装ImageMagick,且已将其安装路径添加到系统环境变量
PATH中 - 验证方式:按下Win+R输入
cmd打开命令提示符,执行magick --version,正常返回版本信息即为配置成功
脚本代码
将以下内容复制到记事本,保存为merge_png.bat,编码选择ANSI即可:
@echo off setlocal enabledelayedexpansion chcp 65001 >nul :: 配置文件夹路径,可根据实际情况修改 set "BG_PATH=C:\Users\User\Desktop\Backrounds" set "OVERLAY_PATH=C:\Users\User\Desktop\Overlays" set "OUTPUT_PATH=C:\Users\User\Desktop\MergedResult" :: 自动创建输出文件夹 if not exist "%OUTPUT_PATH%" mkdir "%OUTPUT_PATH%" :: 遍历所有Overlay层PNG文件 for %%i in ("%OVERLAY_PATH%\*.png") do ( :: 拆分文件名提取末尾颜色字段 for /f "tokens=3 delims=-." %%c in ("%%~ni") do ( set "color=%%c" :: 校验对应背景图是否存在 if exist "!BG_PATH!\!color!.png" ( echo 正在合成文件:%%~nxi :: 执行叠加操作,背景在下、overlay在上 magick composite "%%~fi" "!BG_PATH!\!color!.png" "!OUTPUT_PATH!\%%~nxi" ) else ( echo 跳过文件%%~nxi:未找到匹配的!color!背景图 ) ) ) echo 所有文件合成完成,结果已保存到:%OUTPUT_PATH% pause
使用说明
- 若使用的是旧版本ImageMagick,将脚本中的
magick composite替换为composite即可正常运行 - 合成后的文件与原Overlay文件同名,默认保存在桌面的
MergedResult文件夹中 - 脚本会自动跳过找不到对应背景图的文件,并在控制台输出提示
内容的提问来源于stack exchange,提问作者LePyka
相关产品推荐
相关产品推荐

