]> Sergey Matveev's repositories - dotfiles.git/commitdiff
scan.sh negative support
authorSergey Matveev <stargrave@stargrave.org>
Mon, 6 Jul 2020 15:48:01 +0000 (18:48 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Mon, 6 Jul 2020 15:48:01 +0000 (18:48 +0300)
bin/bin/scan.sh

index ce9694e3446489149102cba988b25cc1871483aa..f7723c98ee4b0d7ab9a3d3a0d34273d84a704f1d 100755 (executable)
@@ -6,24 +6,28 @@ cur=noname.ppm
 ctr=${1:-1}
 ctr=$(( $ctr - 1 ))
 
+[ -z "$NEGATIVE" ] && SRC="Flatbed" || SRC="Transparency Adapter"
+
 scan() {
     resolution=$1
     shift
-    scanimage --format=pnm --progress --resolution=$resolution --mode=Color $@ > tmp.ppm
+    scanimage --format=pnm --mode=Color --depth 16 --progress --resolution=$resolution --source="$SRC" $@ > tmp.ppm
 }
 
 process() {
-    pamflip -rotate$rotate | pnmcrop -closeness=$crop
+    [ $rotate -eq 0 ] && rotator=cat || rotator="pamflip -rotate$rotate"
+    $rotator | pnmcrop -closeness=$crop
 }
 
 preview() {
-    pnmscale -w 600 < tmp.ppm | process > preview.ppm
+    [ -z "$NEGATIVE" ] && inverter=cat || inverter=pnminvert
+    pamdepth 8 < tmp.ppm | pnmscale -w 600 | process | $inverter > 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 +39,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 +54,29 @@ while : ; do
         do_next
         ;;
     r)
+        echo -n Rotate:
         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 ?