I am using the convert command for resizing the image
There are two versions
Following is the first one, the resultant image maintains the aspect ratio but the image does not necessarily be of size nxn
convert temp.jpg -resize nxn temp.jpg
The second version
convert temp.jpg -resize nxn! temp.jpg
It does not preserve the aspect ratio.
What I want is to preserve the aspect ratio, and fill the rest of the image with a desired RGB value to acheive the size nxn
Any ideas?
Thanks
If you are using Fedora, Arch or other non-Debian Linux, you can use your distribution's package installing command. Now if you right click on an image, you'll see two new options of resize and rotate in the context menu. You can choose the resize option to resize the image right from the right-click menu quickly.
You need to use -extent
to set the size of the canvas directly after you have resized, and the newly created area will be filled with whatever you set the -background
to.
So, if you want the padding to be magenta, do this:
convert image.png -resize 100x100 -background "rgb(255,0,255)" -extent 100x100 out.png
If you want your image to appear "in the middle" of the output image, with the padding evenly spaced around the sides, add in -gravity center
like this:
convert image.png -resize 100x100 -gravity center -background "rgb(255,0,255)" -extent 100x100 out.png
So, if we start with a wide blue image, that is 300x100 and has no chance of fitting properly in a square, as follows:
and we resize it with this:
convert image.png -resize 100x100 -gravity center -background "rgb(255,0,255)" -extent 100x100 out.png
we will get this
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With