使用 ImageMagick 批量为图像添加空白

giw*_*ook 3 macos terminal imagemagick imagemagick-convert

我有一堆矩形图像,我需要它们是方形的,即 1000x1000,所以我决定使用 ImageMagick 用使图像成为方形所需的空白量来填充图像的两侧。

我发现以下链接中的代码很有用(请参阅下一段)。但这需要我单独处理每个图像,设置文件名,然后设置 -thumbnail 尺寸。如何使用相同的过程来处理整个文件夹?

这是代码和它的链接:

http://imagemagick.org/Usage/thumbnails/#pad

convert -define jpeg:size=200x200 hatching_orig.jpg -thumbnail '100x100>' \
-background white -gravity center -extent 100x100 pad_extent.gif
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 5

从你的问题中不清楚你实际拥有什么(即你的图像有多大?它们是什么格式?),也不是你真正想要的(你只提供了一个没有做你想要的例子。但我'我将在标题的正面回答您的问题,并希望您能找出其中遗漏的任何内容。

如果要批量执行 ImageMagick,则需要在 中使用循环bash,如下所示:

#!/bin/bash
for f in *.jpg; do
    convert "%f" ...
done
Run Code Online (Sandbox Code Playgroud)

或使用 IM 的mogrify命令。这是一个非常强大的命令,因此在您甚至考虑尝试使用它之前备份您的图像。

假设您要将JPEG当前目录中的所有图像放置在 1000x1000 像素的白色背景上。你会这样做:

mogrify -background white -gravity center -extent 1000x1000 *.jpg
Run Code Online (Sandbox Code Playgroud)

更新答案

应该可以在单个 ImageMagick 命令中调整大小和填充白色,而无需使用 SIPS,如果您现在想要用白色填充的 1200x1200 方形图像,就像这样:

mogrify -background white -gravity center -resize 1200x1200\> -extent 1200x1200 *.jpg
Run Code Online (Sandbox Code Playgroud)