我如何在 .bat 文件 (Windows) 中使用 ImageMagick 来调整所有子目录中所有图像的大小?

How would I use ImageMagick in a .bat file (Windows) to resize all images in all sub-directories?

我在 Windows 服务器上有数万张图片。文件的大小从 100x100 到 6000x6000 像素不等。文件为 jpg、gif 和 png。文件位于许多嵌套文件夹中。

我在服务器上安装了 Imagemagick。我正在寻求帮助来编写一个 ImageMagick 脚本,该脚本可以 运行 来自 bat 文件(最顶层的目录将作为参数以及最大像素大小传递)。

脚本会递归处理最顶层目录和所有子目录中的每个图像文件。只有当宽度或高度大于最大像素大小时,它才会调整图像大小(如果最大像素大小参数为 1200,它将调整 4000x2000 图像的大小,但不会调整 100x500 图像的大小)。它会将宽度或高度(以较大者为准)调整为最大像素大小,并将另一个维度的大小更改为成比例(即,在调整图像大小时不会倾斜或扭曲图像)。

是否可以编写一个 ImageMagick 脚本来完成所有这些工作?

因此,fmw42 链接中的信息足以拼凑出一个答案。

FOR /R %f IN (*.jpg) DO mogrify -verbose -resize "1200x1200>" "%f"

这将递归地影响文件夹中和文件夹下的每个 .jpg 文件,这是来自 (FOR /R %f IN (*.jpg) DO) 的 运行。

每个文件都将 sh运行k 以适应 1200x1200 的框,保持图像纵横比,如果有问题的图像在任一方向大于 1200 像素。