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