Imagemagick thumbnailer

29-11-2007 | Remy van Elst


Table of Contents


Below you'll find the script that makes nice thumbnails from a bunch of images. I've used it on the links page on this website. (Which is not around anymore).
First I made screenshots of the website's I wanted, with the firefox add-on screengrab. It also works with pictures, but then you'll have to change the png to jpg in the script. The script also makes a HTML page with a 2 collumn table witth the thumbs in it.

Make sure you have imagemagick installed:

sudo apt-get install imagemagick

or

sudo pacman -S imagemagick

The script:

#####################################
## Raymii.org Thumbr script        ##
## Version 0.2. Just bugfixes...   ##
#####################################

#!/bin/bash
NUMMR=1

EXTENSION="jpg";
mkdir work
mkdir -p finished/pics 

GALL=./finished/gallery.html
rm -rf $GALL 
echo "Made with raymii.orgs gallery thumber" > $GALL 
tabhead=" <table border="0" bordercolor="0" >" 
tabfeet=" </table >" 
echo $tabhead >> $GALL 


for i in *.$EXTENSION; 
do cp -rf -v "$i" "./work/$NUMMR.$EXTENSION"; 

convert ./work/$NUMMR.$EXTENSION -auto-orient 
 -thumbnail 160x160 -unsharp 0x.5 ./work/$NUMMR.w1.png 


convert ./work/$NUMMR.w1.png 
 -bordercolor white -border 6 
 -bordercolor grey60 -border 1 
 -bordercolor none -background none 
 ( -clone 0 -rotate `convert null: -format '%[fx:rand()*30-15]' info:` ) 
 ( -clone 0 -rotate `convert null: -format '%[fx:rand()*30-15]' info:` ) 
 ( -clone 0 -rotate `convert null: -format '%[fx:rand()*30-15]' info:` ) 
 ( -clone 0 -rotate `convert null: -format '%[fx:rand()*30-15]' info:` ) 
 -delete 0 -border 100x100 -gravity center 
 -crop 200x200+0+0 +repage -flatten -trim +repage 
 -background black ( +clone -shadow 60x4+4+4 ) +swap 
 -background none -flatten 
 "./work/$NUMMR.thumb.png" 

cp ./work/$NUMMR.thumb.png ./finished/pics/$NUMMR.png

evenline=" <tr > <td > <a href=""><img src="pics/$NUMMR.png" alt=" pic $NUMMR - made by raymii.org script" / > </a></td >" 
oddline=" <td > <a href=""><img src="pics/$NUMMR.png" alt=" pic $NUMMR - made by raymii.org script" / > </td > </a></tr >" 

 slot=$(( $NUMMR % 2 )) 
if [ $slot -eq 0 ] 
then 
 echo $oddline >> $GALL 
else 
 echo $evenline >> $GALL 
fi 
let "NUMMR += 1" 
done 

echo $tabfeet >> $GALL 
rm -rf ./work 
exit 0 

The thumbing effect was copied from the example pages from imagemagick.


Tags: bash, imagemagick, thumbnails,