使用ubuntu上的转换使用填充调整图像大小

时间:2015-03-16 09:44:32

标签: linux image imagemagick image-resizing

我正在使用convert命令调整图像大小

有两个版本

以下是第一个,结果图像保持纵横比但图像不一定是nxn

的大小
 convert temp.jpg -resize nxn temp.jpg

第二个版本

 convert temp.jpg -resize nxn! temp.jpg

它不保留纵横比。

我想要的是保留纵横比,并用所需的RGB值填充图像的其余部分,以实现尺寸nxn

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:25)

您需要使用-extent在调整大小后直接设置画布的大小,并且新创建的区域将填充您设置-background的任何内容。

因此,如果您希望填充为洋红色,请执行以下操作:

convert image.png -resize 100x100 -background "rgb(255,0,255)" -extent 100x100 out.png

如果您希望图像在输出图像的“中间”出现,并且填充边均匀分布,请像这样添加-gravity center

convert image.png -resize 100x100 -gravity center -background "rgb(255,0,255)" -extent 100x100 out.png

所以,如果我们从一个宽的蓝色图像开始,即300x100,并且无法在正方形中正确拟合,如下所示:

enter image description here

我们用它来调整它的大小:

convert image.png -resize 100x100 -gravity center -background "rgb(255,0,255)" -extent 100x100 out.png

我们会得到这个

enter image description here