使用ImageMagick批量为图片添加空白边框

4
我有许多长方形图片,需要将它们变成正方形,即1000x1000。因此,我决定使用ImageMagick来填充图像两侧的空白部分,以使其成为正方形。
我发现以下链接中的代码非常有用(请参见下一段)。但是这要求我逐个处理每个图像,设置文件名和缩略图尺寸。如何使用相同的过程来处理整个文件夹?
以下是该链接的代码: 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

你解决了吗?如果没有,请发布一两张输入图像以及相应输出图像的外观,并@我。 - Mark Setchell
1个回答

7

从您的问题中并不清楚您实际拥有什么(即您的图像有多大?它们是什么格式?),也不清楚您实际想要什么(您只提供了一个不能满足您要求的示例)。但我将根据标题直接回答您的问题并希望您可以从中得到所需信息。

如果您想要批量处理ImageMagick,您需要使用bash中的循环,例如:

#!/bin/bash
for f in *.jpg; do
    convert "%f" ...
done

或者使用IM的“mogrify”命令。那是一个非常有力的命令,所以在尝试使用之前,请备份您的图像。
假设您想将当前目录中的所有JPEG图像放置在白色1000x1000像素背景上。你可以这样做:
mogrify -background white -gravity center -extent 1000x1000 *.jpg

更新的回答

可以通过一条 ImageMagick 命令实现调整大小和添加白色填充,而不需要使用 SIPS。如果您现在想要得到 1200x1200 的正方形图片并添加白色填充,可以像这样操作:

mogrify -background white -gravity center -resize 1200x1200\> -extent 1200x1200 *.jpg

感谢您发布这篇文章。如果有其他人需要帮助解决此问题,我确实使用了mogrify命令添加空格,但在此之前,我必须缩小图像(它们都是高分辨率的)。为此,我在终端中使用了以下命令,该命令会自动缩小图像,使最大属性(高度或宽度或两者)为1200,同时保持正确的比例:sips -Z 1200 *.jpg - giwook
很高兴它对你有用 - 现在你已经添加了关于初始图像大小的额外信息,我已经更新了我的答案以便一次性完成所有操作。请再看一遍。 - Mark Setchell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接