使用ImageMagick将图像放置在较大的canvas内

ImageMagic入门,并试图find一种方法来做到这一点…如果一个图像小于50像素高或50像素宽,我想把它(未缩放)的水平/垂直中心的一个新的50×50像素canvas在白色背景之上 – 并保存为新的图像。 任何人都知道这是可能的ImageMagick? 谢谢!

我用-extent来做到这一点:

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

看到切割和接壤的例子很多。 这里有一个简单的方法可以做到这一点:

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

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

我试过这个:

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

我也想这样做,除了把图像缩小到70%以内。 我用这个:

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

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

你可以使用单一的组合来做到这一点。 所以它看起来像这样:

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

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

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

我曾经使用过这段代码将图像放置在一个白色背景的新canvas的中央。 希望对你有帮助

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