下面的代码源自AI,实现了缩放一个目录里面的所有图片文件到40%,包含子目录里面的图片,并且缩放后导出到另一个文件夹,保持原有的目录结构。
这个代码是命名成bat批处理文件执行的。并且需要电脑上安装GraphicsMagick图片处理工具。里面的目录和缩放比例自己调整。
BatchScaleImg.bat
setlocal enabledelayedexpansion
:: 设置源文件夹和目标文件夹
set "source_folder=E:\sync\aaa\"
set "target_folder=E:\sync\aaa_scaled\"
:: 设置缩放比例为40%
set "resize_percent=40%%"
:: 遍历源文件夹
for /r "%source_folder%" %%f in (*.jpg *.jpeg *.png *.gif *.bmp) do (
:: 获取相对路径
set "rel_path=%%f"
set "rel_path=!rel_path:%source_folder%=!"
:: 创建目标目录结构
set "target_path=%target_folder%!rel_path!"
for %%a in ("!target_path!") do set "target_dir=%%~dpa"
if not exist "!target_dir!" mkdir "!target_dir!"
:: 执行缩放操作
echo 正在处理: %%f
gm convert "%%f" -resize "%resize_percent%" "!target_path!"
)
echo 所有图片处理完成
pause
我测试可行。我5627个图片75GB的大小,脚本运行了1个小时。平均每张图片8MB,变成了200KB。总共图片变成了1.43GB,极大的节省了我的硬盘空间。