http://netpbm.sourceforge.net/doc/
Formats are downwards compatible. For example, any ppm program can deal with pbm image, etc. Pam is downward compatible with any format.
ls *.jpg | while read item; do jpegtopnm "$item" | pamscale .50 | pnmtojpeg > `echo file | sed 's|\(.*\)\.jpg|\1-thumb.jpg|'`
jpegtopnm file | pnmmargin -white 10 | ppmshadow | pnmtojpeg > file.done; mv file.done file
jpegtopnm file | ppmlabel -text 'hi there!' | pnmtojpeg > `echo file | sed 's|\(.*\)\.jpg|\1-label.jpg|'`
images/totakeke1.gif converted to ascii text with netpbm Mo ooo MM oMo "MMM MMMoMMMM MMMo oMMM"MMMM "MMM MMM" MMMooooooo MMMo " MMMMMMMMMMMo oMMMMoo MMMMMMMMMMMMo oMMMMMMMMM MMMMMMMMMMMMMMo MMMMMMMM"" MMMMMMMMMMMMMMMo MMMM"" oMMo MMMMMMMMMMMMMMMMo MM"" oMMM"M" MMMMMMMMMMMMMM M" oMMMMMMM MMMMMMMMMMMMM M"""MMMMM "MMMMMMMMMM "MMMM " ""MMMMMMMMo o "MMMMMMMM M" MMMMMMMM MMMMMoo M MMMMMMMMMMMMMMMMMMo " MMMMMMMMMMMMMMMMMMM o Mo MMMMMMMMMMMMMMMMMM oooM "MM ooM"MMMMMMMMMMMMMMoooooMMM" MMM M "MMMMMM """MMMMMMMMMMMM"" o" MM ""MM MMMMMMMMMMMMoooo o oooooM MMoo MMM MM MMMMMMo oMoMMoMo M MMMMMMMoMMooMM" MM oooo"MMMM" """""""MMo "" M Mo MMMMo " MMM MMMMMMMMM MMM o "MMM""" o MMM " " "" " oMoMo ooo oMMMMMMMMo" """""o oM " "" Mo """