使用ImageMagick将图像放在较大的画布中

时间:2009-11-24 02:10:08

标签: imagemagick

开始使用ImageMagic并试图找到一种方法来执行此操作...如果图像高度小于50像素或宽度为50像素,我想将其放置在水平/垂直方向(未缩放)在白色背景上的新50x50像素画布的中心 - 并将其保存为新图像。任何人都知道ImageMagick是否可以实现这一目标?谢谢!

7 个答案:

答案 0 :(得分:107)

我用-extent来做到这一点:

convert input.jpg -gravity center -background white -extent 50x50  output.jpg

答案 1 :(得分:5)

除了将图像缩小到70%之外,我想做同样的事情。我用过这个:

convert input.png -resize 70%x70% -gravity center -background transparent -extent 72x72 output.png

不完全是所要求的,但希望它会帮助某人;)。

答案 2 :(得分:4)

有关大量示例,请参阅cutting and bordering。这是一种简单的方法:

convert input.png -bordercolor Black -border 5x5 output.png

当然,您需要根据输入图像的尺寸计算要添加的边框大小(如果有)。您使用的是ImageMagick API,还是只使用命令行工具?

答案 3 :(得分:4)

我曾经使用此代码将图像放在具有白色背景的新画布的中心。希望这会对你有所帮助

convert -background white -gravity center your_image.jpg -extent 50x50 new_image.jpg

答案 4 :(得分:3)

我试过了:

convert test.jpg -resize 100x100 -background black -gravity center -extent 100x100 output.png

答案 5 :(得分:1)

您可以使用single composition执行此操作。所以它看起来像这样:

convert -size 50x50 xc:white null: ( my_image.png -coalesce ) -gravity Center -layers Composite -layers Optimize output.png

答案 6 :(得分:1)

要修改源图像,您需要使用mogrify:

mogrify -gravity center -background white -extent 50x50  source.jpg