如何在 ImageMagick 中批量调整图像大小,同时保持纵横比以及最大宽度和高度?

Aar*_*nat 4 command-line imagemagick

我有一个高分辨率图像的文件夹。它是 JPG 和 24 位透明 PNG 的混合。我想使用以下规则批量生成缩略图:

  • 每个图像保留其格式(.jpg 输入、.jpg 输出....png 输入、.png 输出)
  • 每个图像保留其文件名,但移动到 /thumbnails 子文件夹
  • 每个图像保留其当前的宽高比
  • 每个处理图像的最终尺寸应在以下约束下尽可能大:
  • 最大图像宽度为 488px
  • 最大图像高度为 220px
  • 除了缩放之外,每个图像都应该保留其所有其他属性

我是 ImageMagick 的新手,不知道需要运行什么命令才能实现此结果。最终,这是一个 Jekyll 项目,但我很乐意满足于能够通过命令行手动运行这个过程。

任何帮助将非常感激!

fmw*_*w42 8

ImageMagick 命令行 mogrify 可能就是您想要的,并且可以执行您需要的操作。它处理一个充满图像的文件夹。请参阅https://imagemagick.org/Usage/basics/#mogrify和https://imagemagick.org/script/command-line-options.php#resize。该命令类似于以下内容:

Create a new directory to hold your output, say, thumbnails.
Change directory to your folder with the images

mogrify -path path_to/thumbnails -resize 488x220 *
Run Code Online (Sandbox Code Playgroud)


该命令将处理文件夹中的每个文件。如果您有其他格式,例如 txt 或其他不想处理的图像,请修改命令以限制为仅 png 和 jpg,如下所示:

mogrify -path path_to/thumbnails -resize 488x220 *.png *.jpg
Run Code Online (Sandbox Code Playgroud)


add *.PNG *.JPG *.jpeg *.JPEG to the end of the line,如果目录中的后缀有不同的大写和拼写。

其他编程语言有不同的 API。请参阅https://imagemagick.org/script/sitemap.php#program-interfaces