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

Mik*_*ike 59 imagemagick

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

Jar*_*red 110

我用-extent来做到这一点:

convert input.jpg -gravity center -background white -extent 50x50  output.jpg
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,重力应放在`-extent`之前:`convert bg.png -gravity center -extent 640x960 -background white ../ default @ 2x.png` (11认同)
  • ...而且`-background`必须在`-extent`之前设置.在上面的示例中,默认情况下,背景设置为白色 (6认同)
  • 顺便说一句,如果要添加透明度,请使用xc:transparent作为背景参数 (4认同)

Vin*_*dev 6

我曾经使用此代码将图像放置在具有白色背景的新画布的中心。希望能帮到你

convert -background white -gravity center your_image.jpg -extent 50x50 new_image.jpg
Run Code Online (Sandbox Code Playgroud)


gle*_*enn 5

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

convert input.png -resize 70%x70% -gravity center -background transparent -extent 72x72 output.png
Run Code Online (Sandbox Code Playgroud)

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


Ada*_*eld 4

请参阅切割和镶边以获取大量示例。这是一种简单的方法:

convert input.png -bordercolor Black -border 5x5 output.png
Run Code Online (Sandbox Code Playgroud)

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