]> Sergey Matveev's repositories - dotfiles.git/commitdiff
Scanner helper
authorSergey Matveev <stargrave@stargrave.org>
Sun, 5 Jul 2020 14:45:37 +0000 (17:45 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 5 Jul 2020 14:45:37 +0000 (17:45 +0300)
bin/bin/scan.sh [new file with mode: 0755]

diff --git a/bin/bin/scan.sh b/bin/bin/scan.sh
new file mode 100755 (executable)
index 0000000..ce9694e
--- /dev/null
@@ -0,0 +1,64 @@
+#!/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