Skip to main content

Raymii.org Raymii.org Logo

Quis custodiet ipsos custodes?
Home | About | All pages | Cluster Status | RSS Feed | Gopher

Imagemagick thumbnailer

Published: 29-11-2007 | Author: Remy van Elst | Text only version of this article


❗ This post is over thirteen years old. It may no longer be up to date. Opinions may have changed.

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.

Consider sponsoring me on Github. It means the world to me if you show your appreciation and you'll help pay the server costs.

You can also sponsor me by getting a Digital Ocean VPS. With this referral link you'll get $100 credit for 60 days.

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 , snippets , thumbnails