windows - 如何在 .bat 文件 (Windows) 中使用 ImageMagick 来调整所有子目录中的所有图像的大小?
问题描述
我在 Windows 服务器上有数以万计的图像。文件大小从 100x100 到 6000x6000 像素不等。文件为 jpg、gif 和 png。文件位于许多嵌套文件夹中。
我在服务器上安装了 Imagemagick。我正在寻求帮助来编写可以从 bat 文件运行的 ImageMagick 脚本(最顶层的目录将作为参数以及最大像素大小传入)。
该脚本将递归处理最顶层目录和所有子目录中的每个图像文件。只有当宽度或高度大于最大像素大小时,它才会调整图像大小(如果最大像素大小参数为 1200,它将调整 4000x2000 的图像大小,但不会调整 100x500 的图像大小)。它将宽度或高度(以较大者为准)调整为最大像素大小,并将其他维度的大小更改为成比例(即,在调整大小时不会歪斜或扭曲图像)。
是否可以编写一个 ImageMagick 脚本来完成所有这些工作?
解决方案
因此,来自 fmw42 的链接中的信息足以拼凑出一个答案。
FOR /R %f IN (*.jpg) DO mogrify -verbose -resize "1200x1200>" "%f"
这将递归地影响从 ( FOR /R %f IN (*.jpg) DO
) 运行的文件夹中及其下的每个 .jpg 文件。
如果相关图像在任一方向上大于 1200 像素,则每个文件将被缩小以适合 1200x1200 的框,并保持图像的纵横比。
推荐阅读
- server - DNS vs 托管 vs 速度
- android - Windows 10 上 Android Studio AVD 的解决方法
- php - 在 PHP 中解析 Google 服务对象
- python - Flask-RESTplus 中的响应类
- r - R - 为多个变量查找一周中同一天的变化并聚合
- python-3.x - 如何在 Python 中有效地追加运行总和?
- node.js - 除非从新的浏览器选项卡加载页面,否则 Node Express 应用程序会冻结
- javascript - v-显示嵌套数组项是否匹配过滤数组
- java - 我应该把 public static void main(String[] args) 放在哪里?
- javascript - 数学程序中的 JavaScript 输出