ascii-photobooth/exec-cycle.sh

52 lines
1.6 KiB
Bash
Executable File

#/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