ImageMagick Tips and Tricks Part III
CONTENTS
First bash script coming up, I’ll explain the best I can: I have a set of images that are all square: w=h. I want to create an image of each image with a label on top,using the filename as the label (without the extension), with a white background, ending up with a 200×250 image with the same name as the original but with “-tab” added. IM will by default squeeze the font size so that the text label always fits.
#!/bin/bash
FILES=”*.png”
extbit=”-tab.png”
for F in $FILES
do
newname=$(basename “$F” .png)
fullname=$newname$extbit
convert “$F” -resize 200×200^! -background White -border 0x1 -bordercolor Black\
-gravity center -size 200×50 -font DejaVu-Sans-Bold label:$newname +swap\
-gravity north -append -border 1×1 -bordercolor Black -resize 200×250^!\
PNG24:$fullname
done
Then either use individually or you could put together in a grid using Montage
Take an image of any aspect ratio and place a square white canvas around it
#!/bin/bash
#sqcan.sh
pic=$1
convert $pic -trim $pic
width=$(identify -format "%w" $pic)
height=$(identify -format "%h" $pic)
new_dim=$((width > height ? width+10 : height+10))
convert $pic -gravity center -extent "${new_dim}x${new_dim}" sc-$pic
Usage:
On the command line, in the directory with the image you want to add the canvas:
./sqcan.sh mg.jpg
Make a square image from an image of any dimensions based upon the centre
but using either full width or height
but using either full width or height
#!/bin/bash
#sqit.sh
convert -define jpeg:size=800x800 "$1" -thumbnail 400x400^ -gravity center -extent 400x400 sq-$1
Usage:
./sqit.sh mg.jpg