我正在尝试使用imagemagick调整图像大小以保持其当前的长宽比,但将其装入4/3容器中。
这是我到目前为止的命令:
magick convert ./horse.jpeg -background white -gravity center -extent 4/3 ./hourse_output.jpeg
这就是我想要的:。如您所见,图像被“放入”一个4/3容器。
答案 0 :(得分:1)
我的错误。诸如ImageMagick -extent中的4:3之类的纵横比只会裁切而不会填充。
请参阅http://www.fmwconcepts.com/imagemagick/index.html上我的bash Unix脚本“ aspectpad”,它符合您的想法。
尽管如此,这是部分解决方案。但这仅适用于横向模式输入。由于对-extent使用了内联参数,因此也仅适用于ImageMagick 7。您必须将其修改为纵向模式。
输入(纵横比2:1 = 2/1 = 2):
magick barn_2to1.jpg -set option:wd "%[fx:(4/3)>(w/h)?(4/3*h):w]" -set option:ht "%[fx:(4/3)>(w/h)?h:(w/(4/3))]" -gravity center -background black -extent "%[wd]x%[ht]" result.jpg
输出(纵横比4:3 = 4/3 = 1.33):
请注意,我使用了黑色背景,因此在这里可见。更改为您想要的任何其他颜色。
如果输入横向宽高比大于4:3(4/3),它将在顶部/底部填充。如果输入横向宽高比小于4:3,它将在左/右上滑动。
输入(长宽比= 1:1 = 1/1 = 1):
magick lena.jpg -set option:wd "%[fx:(4/3)>(w/h)?(4/3*h):w]" -set option:ht "%[fx:(4/3)>(w/h)?h:(w/(4/3))]" -gravity center -background black -extent "%[wd]x%[ht]" result2.jpg
答案 1 :(得分:0)
使用4:3而不是4/3。但是您尚未指定任何-resize。在ImageMagick 7中,仅使用magick,而不使用magick convert和not convert。对于其他工具,请使用magick标识,magick迁移等,但不要用于convert。有关4:3问题,请参见imagemagick.org/script/command-line-processing.php#geometry。
答案 2 :(得分:0)