]> Sergey Matveev's repositories - dotfiles.git/blobdiff - bin/bin/scan.sh
Another scan.sh refactoring
[dotfiles.git] / bin / bin / scan.sh
index ce9694e3446489149102cba988b25cc1871483aa..57dbe80377d6d0ebeb88fe7b2faf334c6888b2af 100755 (executable)
@@ -9,21 +9,33 @@ ctr=$(( $ctr - 1 ))
 scan() {
     resolution=$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
+    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
+    pamdepth 255 < tmp.ppm | pnmscale -w 600 | process > preview.ppm
     sxiv preview.ppm
 }
 
 do_next() {
     rotate=180
-    crop=50
+    [ -z "$NEGATIVE" ] && crop=50 || crop=10
     ctr=$(( $ctr + 1 ))
     cur=`printf "%03d.ppm" $ctr`
 }
@@ -35,11 +47,11 @@ while : ; do
     read c
     case $c in
     v)
-        scan 150
+        scan 150 --preview=yes
         preview
         ;;
     s)
-        scan 1600 --high-quality=yes
+        scan 1600 --preview=no --high-quality=yes
         preview
         ;;
     p)
@@ -50,12 +62,19 @@ while : ; do
         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 ?