When I post to Instagram on my @r.ch3n account, I typically post an image that looks like this:
As you may or may not be able to see, there's a white border around the photo to make it fit within the constraints of Instagram. While I really like how Instagram has introduced support for other photo formats, I somehow still like the square.
So for a long time I've been using Adobe Photoshop CC to center the image into a blank square, then exporting it. This is fine, but it does take some time. Photoshop startup, as some of you may know, is no young colt and is more like Simba when I tell him to go up the stairs.
But screw Photoshop! I want something as fast as Simba coming to dinner! So I decided to wrangle some
imagemagick to finangle my commands to create this mat.
Step 1. Install imagemagick
For the unaware:
imagemagick is a command line utility that is able to do a lot of things to images. You can use it to crop, superimpose two images, and much more! But first we have to install it. These instructions are for Mac only, but you can find them for Windows if you do a quick google search (e.g. "imagemagick install Windows").
brew in the command line. If you don't have
brew, that's not on me anymore.
brew install imagemagick
Step 2. Run the command!
imagemagick installs, we can call it using the
convert command. What we're going to do is run the following command that will create a white background for our image, resize our image to fit in this image, then export it to our folder.
convert -define jpeg:size=2000x2000 07302022_MOVING-5.jpg -thumbnail '2000x2000>' -gravity center -crop 2200x2200+0+0\! -background white -flatten square.jpg
Ok let's break this down. If you don't care about this just replace the first
.jpg with your file and the last
.jpg with the desired output filename.
imagemagicklibrary we just installed.
-define jpeg:size=2000x2000is what our resolution will end up being.
07302022_MOVING-5.jpgis the image we want to convert into a square.
-thumbnail '2000x2000>'means we are creating a copy of the image that is size 2000 x 2000 only if the size of the image is larger than that.
-gravity centermeans we want this in the middle.
-crop 2200x2200+0+0!: adjusting the first two numbers in this gives us the size of the final white border. So if we want the border to be about 100px wide at the smallest point, we would but 2200 here.
-background whitefills in the background of the image.
-flattenputs everything into one flat image
square.jpgis the final output file.