使用具有最大宽度/高度的 ImageMagick 调整大小

Posted

技术标签:

【中文标题】使用具有最大宽度/高度的 ImageMagick 调整大小【英文标题】:Resize with ImageMagick with a maximal width / height 【发布时间】:2016-10-12 20:25:36 【问题描述】:

命令

imageconvert.exe in.jpg -resize 800x600 out.jpg

调整图像大小,使其保持原始比例,最大宽度为 800,最大高度为 600 像素。但如果图像宽度和高度都较小(例如 300x200 的图像),它会被放大到 800 或 600,我不希望这样。

如何保持相同类型的大小调整(当宽度 > 800 或高度 > 600 时),但使图像宽度和高度都更小(例如 300x200 图像),会保持原样吗?

【问题讨论】:

【参考方案1】:

我认为您需要 resize 上的 > 标志。让我们创建一些图像(一个红色 300x200,另一个蓝色 1000x500):

convert -size 300x200 xc:red   small.png
convert -size 1000x500 xc:blue large.png

现在将它们都转换为不带标志的 800x600:

convert small.png -resize 800x600 a.png   # 800x533
convert large.png -resize 800x600 b.png   # 800x400

现在有了标志:

convert small.png -resize 800x600\> a.png # 300x200
convert large.png -resize 800x600\> b.png # 800x400

在 Windows 上,您可能需要插入符号 (^) 而不是反斜杠。

文档here 中解释了各种标志。感谢@user1133275 的建议。

【讨论】:

确实!在 Windows 上是 -resize 800x600^> @user1133275 非常感谢您的有用建议 - 我已经更新了我的答案。

以上是关于使用具有最大宽度/高度的 ImageMagick 调整大小的主要内容,如果未能解决你的问题,请参考以下文章

ImageMagick 缩放和裁剪保持纵横比

诺禾致源|诺禾:Web 技术

ImageMagick:获取一行文字的宽与高

直方图中的最大矩形

如何使 svg 适合 html 的宽度和高度?

在具有最大高度的div内的表