2

我需要根据其纵横比转换图像。

肖像图像需要转换为 500px 宽度。

横向需要转换为 800px 宽度。

这是否可以通过单个命令行来实现。

我现在正在尝试解决这个问题,但找到的唯一方法是使用 sh 脚本获取大小并调用适当的转换。

4

3 回答 3

2

如果有人在找这个,这就是我如何找到图像是风景或肖像的天气

a=$(identify -format "w=%w;h=%h" l.jpg)
eval $a

if [ "$w" -ge "$h" ]
then
  echo 'landscape'
else
  echo 'portrait'
fi
于 2013-08-21T20:16:16.870 回答
1

您可以在 ImageMagick 7 中的一次命令行中执行此操作,但在 ImageMagick 6 中,如果有条件测试,则需要一个 shell 脚本。

在 ImageMagick 7 中,

magick image -resize "%[fx:(w/h)>=1?800:500]x" result
于 2021-11-27T04:31:07.277 回答
0

感谢您的脚本,这是一个检测比率大于或等于 16:9 的版本并调用适当的调整大小命令(批量调整 4k 壁纸文件夹的图像大小)

a=$(identify -format "w=%w;h=%h" $1)
eval $a

mh=$(($h * 16))

mw=$(($w * 9))

if [ "$mw" -ge "$mh" ]
then
  magick $1 -resize '3840' $1
else
  magick $1 -resize 'x2160' $1
fi
于 2021-11-27T01:46:53.113 回答