假设我想在幻灯片中并排显示两张图片,但它们的大小不同。我知道我可以使用“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 脚本,它可以确切地你想要什么。