开发者

Use ImageMagick to place an image inside a larger canvas

Getting started with ImageMagic and trying to find a way to do this... If an image is le开发者_高级运维ss than 50 pixels tall or 50 pixels wide, I'd like to place it (un-scaled) in the horizontal/vertical center of a new 50x50 pixel canvas on top of a white background - and save that as the new image. Anyone know if this is possible with ImageMagick? Thanks!


I used -extent to do this:

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


I wanted to do the same, except shrink the image to 70% inside. I used this:

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

Not exactly what was requested but hopefully it will help someone ;).


I have once used this code to place an image in the center of a new canvas with white background. hope this will help you

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


See cutting and bordering for a huge number of examples. Here's one simple way you might do it:

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

Of course, you'll need to calculate the size of the border to add (if any) based on the dimensions of the input image. Are you using an ImageMagick API, or just the command line tools?


I tried this:

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


You can use single composition to do this. So it would look something like this:

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


To modify the source image you need to use mogrify:

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


If an image is less than 50 pixels tall or 50 pixels wide

In my case, the images were much larger than the destination canvas, and weren't square. So I resize them proportionally to fit inside. Example:

convert in.png -resize 46x46 -background none -gravity center -extent 50x50 out.png

The 46x46 limit ensures a 2 pixel margin minimum. Note that the above does not distort the image, e.g. a rectangle does not become a square.

I used background none for a transparent background, but you can choose a solid color instead.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜