无裁剪 canvas 使用 ImageMagick 增加到 2:1 纵横比

No-crop canvas increase to 2:1 aspect ratio with ImageMagick

我的情况是我有一组宽度和高度可变的图像,我需要确保这些图像符合 2:1.

的宽高比

我唯一可以做的假设是这些图像的纵横比大于 2,所以我需要扩展 canvas。

使用 ImageMagick 我可以做到这一点:

magick input.jpg -background black -gravity north -extent 2:1 output.jpg

但是这种裁剪而不是根据需要添加 canvas。是否有避免裁剪的选项,即强制图像填充?记住我事先不知道图像分辨率。

当然,如果使用更复杂的脚本,我可以提取图像尺寸并计算所需的分辨率,但我尽量让事情变得简单。

P.S.: 图像来自激光扫描仪,将用于 360 全景查看器,因此需要在不裁剪的情况下满足纵横比。

使用 ImageMagick v7,您可以进行一些内联​​计算,这些计算将调整 -extent 操作的结果,以将任何大小的输入填充到 2:1 比率。以这个命令为例...

magick input.png -gravity center -extent "%[fx:max(w,h*2)]x%[fx:max(w/2,h)]" result.png

这将用黑色填充任何额外的 space。在 extent 操作之前添加 -background <somecolor> 以更改填充颜色。