ctr=$(( $ctr - 1 ))
scan() {
- resolution=$1
+ preview=$1
shift
- scanimage --format=pnm --progress --resolution=$resolution --mode=Color $@ > tmp.ppm
+ [ -z "$NEGATIVE" ] && src="Flatbed" || src="Transparency Adapter"
+ [ -z "$NEGATIVE" ] && depth=8 || depth=16
+ [ -z "$NEGATIVE" ] && resolution=800 || resolution=1600
+ if [ "$preview" = "yes" ]; then
+ depth=8
+ resolution=150
+ fi
+ scanimage \
+ --format=pnm \
+ --mode=Color \
+ --depth $depth \
+ --progress \
+ --resolution=$resolution \
+ --source="$src" \
+ $@ > tmp.ppm
}
process() {
- pamflip -rotate$rotate | pnmcrop -closeness=$crop
+ [ $rotate -eq 0 ] && rotator=cat || rotator="pamflip -rotate$rotate"
+ [ -z "$NEGATIVE" ] && inverter=cat || inverter=pnminvert
+ $rotator | pnmcrop -closeness=$crop | $inverter
}
preview() {
- pnmscale -w 600 < tmp.ppm | process > preview.ppm
+ process < tmp.ppm | pamdepth 255 | pnmscale -w 600 > preview.ppm
sxiv preview.ppm
}
do_next() {
rotate=180
- crop=50
+ [ -z "$NEGATIVE" ] && crop=40 || crop=10
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"
+ echo -n "$cur: crop:$crop rotate:$rotate v/r/c/s/p/n> "
read c
case $c in
v)
- scan 150
+ scan yes --preview=yes
preview
;;
s)
- scan 1600 --high-quality=yes
+ scan no --preview=no --high-quality=yes
preview
;;
p)
do_next
;;
r)
+ echo -n "Rotate (n/r/l/t):"
read rotate
- echo Rotate: $rotate
+ case $rotate in
+ n) rotate=180 ;;
+ r) rotate=90 ;;
+ l) rotate=270 ;;
+ t) rotate=0 ;;
+ *) echo ? ;;
+ esac
;;
c)
+ echo -n Crop:
read crop
- echo Crop: $crop
;;
*)
echo ?