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

时间:2014-11-16 21:41:35

标签: 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

1 个答案:

答案 0 :(得分:3)

从你的问题中不清楚你实际拥有什么(即你的图像有多大?它们是什么格式?),也不是你真正想要的(你只提供一个不做你的例子)但是我会在标题的面孔上提出你的问题,并希望你能找到那里缺少的任何东西。

如果你想批量做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