【问题标题】:Using ImageMagick to add whitespace to images in bulk使用 ImageMagick 为图像批量添加空白
【发布时间】:2015-01-13 18:09:11
【问题描述】:

我有一堆矩形的图像,我需要它们是正方形的,即 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

【问题讨论】:

  • 你解决了吗?如果没有,请发布一到两个输入图像以及相应的输出图像应该如何显示并 ping 我。

标签: macos terminal imagemagick imagemagick-convert


【解决方案1】:

您的问题不是很清楚您实际拥有什么(即您的图像有多大?它们是什么格式?),也不是您真正想要的(您只提供了一个不符合您要求的示例。但我会在标题的正面回答你的问题,并希望你能解决那里遗漏的任何问题。

如果您想批量执行 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
  • 我很高兴它对您有用 - 现在您已经添加了有关初始图像大小的附加信息,我已经更新了我的答案以一步完成。请再看看。
猜你喜欢
  • 1970-01-01
  • 2018-05-05
  • 2016-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-23
  • 2011-02-08
  • 2019-11-30
相关资源
最近更新 更多