在 ImageMagick 中有什么方法可以使两幅图像具有相同的大小和/或纵横比?

在 ImageMagick 中有什么方法可以使两幅图像具有相同的大小和/或纵横比?

假设我想在幻灯片中并排显示两张图片,但它们的大小不同。我知道我可以使用“mogrify”和“convert”等来调整它们的大小,但输入准确的参数很麻烦。

是否存在某种工具或脚本(例如,matlab 就可以):调整图像大小以形成相同的纵横比,并最大限度地保留图像内容?

例如,让 W x H 成为命名约定。A 为 400x300,B 为 403x299。因此我们将使 A => 400x299 和 B => 400x299;两个图像都保留相同的尺寸和最大面积。

答案1

如果你从 shell 运行它,python imagemagick 绑定可能会执行此操作。逻辑如下:

艾威×艾希  
黑白灰

如果 AW > BW:  
 尺度(A BW/AW)  
别的:
 比例(B AW/BW)  

如果 AH > BH:  
 尺度(a BH/AH)  
别的:  
 尺度(B AH/BH)  

如果 AW > BW:  
 作物(A 宽 x BH)  
别的:  
 裁剪(B AWxAH)  

答案2

ImageMagick 的convert命令可以一次性完成此操作。但您必须通过identify在另一个命令中执行命令来指定调整大小参数。:-)

调整一张图片的大小以匹配另一张图片的大小

 convert \
    to-be-resized.orig.img \
   -resize $(identify \
                -ping \
                -format "%wx%h\!" \
                 master.img) \
    orig-is-resized.jpg

更新:哦,我刚刚注意到我的命令并没有完全按照你的要求执行。但差不多了。:-) 它应该仍然能让你对如何处理这个问题有一个基本的了解。应该很容易把它转换成一个 shell 脚本,它可以确切地你想要什么。

相关内容