使用mogrify处理大量图片时出现错误。

8
我正在使用mogrify命令来调整目录中图像的大小,具体命令如下:
    mogrify -resize 100x100 *.jpg

由于图片数量巨大,我遇到了以下错误

    /usr/bin/mogrify: Argument list too long

有什么建议吗?

谢谢

3个回答

30

实际上,答案非常简单。与其让shell扩展参数列表(它无法处理),不如让ImageMagick自己在内部扩展列表,通过用单引号保护来自shell的参数。

因此,您的命令变为:

mogrify -resize 100x100 '*.jpg'

如果内置的glob表达式不能满足您的需求(例如,特殊文件排序),您也可以使用特殊字符“@”:http://www.imagemagick.org/Usage/files/#read

mogrify -resize 100x100 @my_jpegs.txt

3

我认为可以使用findxargs命令,例如:

find . -name \*.jpg -exec mogrify '{}' -resize 100x100 \;

您好,


这没帮到我。大多数 shell 都限制了命令行的长度。我们可以通过使用 ImageMagick 文件名通配符方法来解决这个问题。所以,不要使用 mogrify -resize 50% *.jpg,而是使用 mogrify -resize 50% "*.jpg"。我使用的命令是:find . -name \*.png -exec mogrify '{}' -format jpg "*.png" \; 它适用于超过 130k 个文件。 - SlyDeath

1
"magick 说道:大多数 shell 限制命令行的长度。您可以通过使用 ImageMagick 文件名通配符方法来解决此问题。因此,不要使用 mogrify -resize 50% *.jpg,而是使用 mogrify -resize 50% \"*.jpg\""。
您的情况将是:
mogrify -resize 100x100 "*.jpg"

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