I have a specific sized canvas (let’s say 400×300 pixels) and I have an image which could be any amount, I want to scale down (paying attention to ratios so it is proper ratio) and fit it inside the canvas, that part I know how to do. But I want to then make the canvas 400×300.
So an image let’s say 300×600. It would be scaled to 150×300 (so it fits inside 400×300) and then centered and the image is “applied” to a white canvas of 400×300. And it would do that for any size image.
I don’t know how to do the last part.
UPDATE: Just noticed the comment on your post that you want to do this with PHP bindings. This answer I supplied only applies to the command line, not PHP. I can’t help you with that. But leaving this answer in case it helps.
To center a smaller image on a large canvas, use the extent operator with gravity. So, for example, if
img.gifis your resized 150×300 image, then this will center the image on a 400×300 white canvas:[Note you can also set “-background ” if you want a canvas other than white, but it defaults to white.]