--- /dev/null
+#!/bin/sh
+
+rotate=0
+crop=0
+cur=noname.ppm
+ctr=${1:-1}
+ctr=$(( $ctr - 1 ))
+
+scan() {
+ resolution=$1
+ shift
+ scanimage --format=pnm --progress --resolution=$resolution --mode=Color $@ > tmp.ppm
+}
+
+process() {
+ pamflip -rotate$rotate | pnmcrop -closeness=$crop
+}
+
+preview() {
+ pnmscale -w 600 < tmp.ppm | process > preview.ppm
+ sxiv preview.ppm
+}
+
+do_next() {
+ rotate=180
+ crop=50
+ ctr=$(( $ctr + 1 ))
+ cur=`printf "%03d.ppm" $ctr`
+}
+
+do_next
+
+while : ; do
+ echo "$cur: (v)iew r(otate) c(rop) (s)can (p)review (n)ext"
+ read c
+ case $c in
+ v)
+ scan 150
+ preview
+ ;;
+ s)
+ scan 1600 --high-quality=yes
+ preview
+ ;;
+ p)
+ preview
+ ;;
+ n)
+ cat tmp.ppm | process > $cur
+ do_next
+ ;;
+ r)
+ read rotate
+ echo Rotate: $rotate
+ ;;
+ c)
+ read crop
+ echo Crop: $crop
+ ;;
+ *)
+ echo ?
+ ;;
+ esac
+done