#!/bin/tcsh # # example: # make-thumbs -s 128 -q 75 -e bzt blah.2.jpg asd.tif asdf.jpg # author: Yann LeCun, AT&T Labs. http://www.research.att.com/~yann # set verb="" set allppm="" set r="" set scale=128 set qual=75 set ext=".t" set allinputs= ( $* ) foreach i ( 1 2 3 4 5 ) switch ( $allinputs[1] ) case "-s": set scale=$allinputs[2] if ( $verb != "" ) echo "-s $scale" shift shift breaksw case "-q": set qual=$allinputs[2] if ( $verb != "" ) echo "-q $qual" shift shift breaksw case "-e": set ext="$allinputs[2]" if ( $verb != "" ) echo "-e $ext" shift shift breaksw case "-h": echo "usage: make-thumbs [-h] [-q ] [-s ] [-e ] file1 ...fileN" echo " " echo "Makes JPEG thumbnails of images or movies" echo " " echo " -h: display this message" echo " -q : set the quality of the output images (%)" echo " default: 75%" echo " -s : make thumbnails that fit in x" echo " default: 128" echo " -e : generate thumb file names of the form basename.jpg" echo " where basename is the basename of the input file" echo " default: .tmb" echo "example:" echo "make-thumbs {DSC,dsc}?????.{jpg,JPG} {MOV,mov}?????.{mpg,MPG}" exit breaksw endsw set allinputs= ( $* ) end foreach i ( $allinputs ) switch ( $i:e ) case "jpg": case "JPG": case "jpeg": case "JPEG": djpeg -scale 1/2 $i | pnmscale -xysize $scale $scale | cjpeg -q $qual >$i:t:r:r$ext.jpg if ( $verb != "" ) echo "[jpeg] $i -> $i:t:r:r$ext.jpg" breaksw case "djv" case "DJV" case "djvu" case "DJVU" set ppm=$i:t:r:r.ppm djvutopnm --subsample=2 $i $ppm pnmscale -xysize $scale $scale $ppm | cjpeg -q $qual >$i:t:r:r$ext.jpg rm -f $ppm if ( $verb != "" ) echo "[djvu] $i -> $i:t:r:r$ext.jpg" breaksw case "mpg" case "MPG" case "mpeg" case "MPEG" set ppm=$i:t:r:r.ppm $0:h/mpeg-firstframe $i $ppm pnmscale -xysize $scale $scale $ppm | cjpeg -q $qual >$i:t:r:r$ext.jpg rm -f $ppm if ( $verb != "" ) echo "[mpeg] $i -> $i:t:r:r$ext.jpg" breaksw endsw end