我正在寻找一些帮助编写一个批处理脚本来调整一堆.jpg图像的大小。
我没有太多批处理脚本的经验。 但是这个任务将在Windows机器上执行,所以我认为一个批处理脚本可能是一个好方法。
我总是有兴趣听到别的想法和方法,或者意识到我没有想到的元素。
下面我列出了脚本的基本步骤/需求:
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.
在Windows上使用Image Resizer :
如果你想特别在命令行上做到这一点,也许你可以自动执行它,在批处理中没有特定的命令用于图像处理。 您可以使用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 ,你可以使用magick
命令行工具 ,例如
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,请参阅: 如何通过命令行轻松调整图像大小?
你可以检查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 )
也检查这一点 。