#!/bin/sh # # mksmallpic.sh [-d dir] [file ...] # # Shrink large jpeg files to 640x480 pixels and # rotate them according to prefixes: # _l.jpg: rotate 90 degrees left # _r.jpg: rotate 90 degrees right # _ll.jpg: rotate 180 degrees # only when the large files are updated. # dir='..' makefile=/tmp/picmake.$$ case $# in 0) files=*.jpg ;; *) if [ $1 = "-d" ]; then dir=$2 shift; shift fi files=$* ;; esac rm -f $makefile for file in $files do smallpic=$dir/s_${file} cat << EOF > $makefile all: $smallpic $smallpic: $file @if echo $file | egrep '_r.jpg'; then \ djpeg $file | pnmrotate -90 | pnmscale -xy 640 640 | \ cjpeg > $dir/s_${file} ; \ elif echo $file | egrep '_l.jpg'; then \ djpeg $file | pnmrotate +90 | pnmscale -xy 640 640 | \ cjpeg > $dir/s_${file} ; \ elif echo $file | egrep '_ll.jpg'; then \ djpeg $file | pnmflip -r180 | pnmscale -xy 640 640 | \ cjpeg > $dir/s_${file} ; \ elif echo $file | egrep '\.jpg\$\$'; then \ djpeg $file | pnmscale -xy 640 640 | \ cjpeg > $dir/s_${file} ; \ fi EOF make -f $makefile rm -f $makefile done