调整图像大小的批处理脚本

A Batch Script To Resize Images

我正在寻找有关编写批处理脚本来调整一堆 .jpg 图像大小的帮助。

我对批处理脚本没有太多经验。但是这个任务将在 windows 机器上执行,所以我认为批处理脚本可能是一个不错的选择。

我总是有兴趣听到替代的想法和方法,或者了解我没有想到的元素。

下面我列出了脚本的基本 steps/needs:

1) The images are located in a folder & are all(or should be) 500 x
500.

2) I need copy & past the images to a new folder, where they will be
resized to 250 x 250.

3) I then need to repeat step 2 but this time resize to 125 x 125.

使用Image Resizer for Windows:

如果您想专门在命令行上执行此操作,也许您可​​以将其自动化,Batch 中没有专门用于图像处理的命令。您可以用 JScript 或其他语言编写一些代码,然后 运行 从命令行编写代码,但是既然已经有成熟的工具可用于此任务,为什么还要这样做呢?

我推荐ImageMagick

获取可移植的 Windows 二进制文件,然后您就可以使用 magick.exe 轻松地做您想做的事。例如,要将文件夹 1 中的所有 png 图像调整(减半)到文件夹 2:

@echo off
if not exist 2 md 2
for %%a in (1\*.png) do "path\to\magick.exe" -resize 50x50% "1\%~nxa" "2\%~nxa"

一旦安装 ImageMagick for Windows, you can use magick command-line tool,例如

magick.exe mogrify -resize 250x250 -path 250x250/ *.png *.jpg
magick.exe mogrify -resize 125x125 -path 125x125/ *.png *.jpg

注意:确保您的 magick.exe 命令在您的 PATH 系统变量中,并且您指向现有的或创建的目标文件夹(例如上述情况下的 mkdir 250x250/ 125x125/) .

对于 Linux/Ubuntu,请参阅:How to easily resize images via command-line?

您可以查看 scale.bat 无需安装额外软件即可调整图像大小 - 它仅使用 windows 内置功能:

@echo off
set "source_folder=c:\images"
set "result_folder_1=c:\res1"
set "result_folder_2=c:\res2"

for %%a in ("%source_folder%\*jpg") do (
   call scale.bat -source "%%~fa" -target "%result_folder_1%\%%~nxa" -max-height 250 -max-width 250 -keep-ratio no -force yes
)

for %%a in ("%source_folder%\*jpg") do (
   call scale.bat -source "%%~fa" -target "%result_folder_2%\%%~nxa" -max-height 125 -max-width 125 -keep-ratio no -force yes
)

同时检查 this