为什么 ImageMagick 会调整所有图像的大小而不考虑大小限制?

why does ImageMagick resizes all images regardless the resize limit?

我正在尝试为 ImageMagick 应用调整大小限制,但它似乎没有像 docs 中预期的那样工作。我在 Windows 7.

中使用 ImageMagick 6.9.2-3-portable-Q16-x86
convert input.jpg -resize 1920x1080^> -quality 92 output.jpg

当输入文件大于 1920x1080 时,它会很好地调整大小。

当输入文件较小时,例如1024x768,虽然我希望它保持不变,但它确实以相同的分辨率 (1024x768) 和不同的文件大小保存,具体取决于质量设置。

参数 -resize 1920x1080^> 不应该强制 ImageMagick 跳过该文件吗?

如果不是,那么我们如何跳过那些小于调整大小限制设置的文件?

它应该像那样工作...你的命令说 "Take input.jpg and resize it if larger than 1920x1080, then change its quality and save it."

您可以 运行 在执行命令之前执行类似的操作以查看是否需要调整大小 - 它将根据图像是否需要调整大小输出 10 :

identify -format "%[fx:(w>1920)||(h>1080)?1:0]" 1921x1080.jpg
1

identify -format "%[fx:(w>1920)||(h>1080)?1:0]" 1920x1080.jpg
0

如果你想把 01 放在一个变量中,你可以这样做:

for /f "usebackq" %i in ( `identify -format "%[fx:(w>1920)||(h>1080)?1:0]" 1921x1080.jpg` ) do set resize=%i

并在 .BAT 文件中加倍百分号。