#/bin/bash trap 'stty sane; clear; exit 0' SIGINT SIGTERM dir="$(dirname "$0")" [ -f "$dir/webcam.conf" ] && source "$dir/webcam.conf" BRIGHTNESS="${DEFAULT_BRIGHTNESS:-auto}" EXPOSURE="${DEFAULT_EXPOSURE:-auto}" STEP="${STEP:-5}" # clamps $1+$2 to 0-100, treating "auto" as a 50 starting point adjust() { local cur=$1 delta=$2 val [ "$cur" = "auto" ] && cur=50 val=$((cur + delta)) (( val < 0 )) && val=0 (( val > 100 )) && val=100 echo "$val" } while true; do clear export BRIGHTNESS EXPOSURE ./webcam2ascii.sh echo echo "brightness: ${BRIGHTNESS} exposure: ${EXPOSURE}" echo "[+/-] brightness [./,] exposure [r] reset to auto [c] capture [Ctrl+C] quit" if read -n 1 -t 0.05 -s key; then case "$key" in "+") BRIGHTNESS=$(adjust "$BRIGHTNESS" "$STEP") ;; "-") BRIGHTNESS=$(adjust "$BRIGHTNESS" "-$STEP") ;; ".") EXPOSURE=$(adjust "$EXPOSURE" "$STEP") ;; ",") EXPOSURE=$(adjust "$EXPOSURE" "-$STEP") ;; r|R) BRIGHTNESS="${DEFAULT_BRIGHTNESS:-auto}"; EXPOSURE="${DEFAULT_EXPOSURE:-auto}" ;; c|C) timestamp=$(date +%Y%m%d-%H%M%S) cp web-cam-shot.jpg "photo-$timestamp.jpg" cp ascii-img.txt "ascii-img-$timestamp.txt" clear cat "ascii-img-$timestamp.txt" echo echo "Saved photo-$timestamp.jpg and ascii-img-$timestamp.txt" ./txt2printr.sh "ascii-img-$timestamp.txt" read -n 1 -s -p "Press any key to resume live preview, Ctrl+C to quit..." ;; esac fi done