60 lines
2.2 KiB
Bash
Executable File
60 lines
2.2 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"
|
|
[ -f "$dir/keybinds.conf" ] && source "$dir/keybinds.conf"
|
|
|
|
BRIGHTNESS="${DEFAULT_BRIGHTNESS:-auto}"
|
|
EXPOSURE="${DEFAULT_EXPOSURE:-auto}"
|
|
STEP="${STEP:-5}"
|
|
|
|
: "${KEY_CAPTURE:=c}"
|
|
: "${KEY_BRIGHTNESS_UP:=+}"
|
|
: "${KEY_BRIGHTNESS_DOWN:=-}"
|
|
: "${KEY_EXPOSURE_UP:=.}"
|
|
: "${KEY_EXPOSURE_DOWN:=,}"
|
|
: "${KEY_RESET:=r}"
|
|
|
|
# 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 "[${KEY_BRIGHTNESS_UP}/${KEY_BRIGHTNESS_DOWN}] brightness [${KEY_EXPOSURE_UP}/${KEY_EXPOSURE_DOWN}] exposure [${KEY_RESET}] reset to auto [${KEY_CAPTURE}] capture [Ctrl+C] quit"
|
|
|
|
if read -n 1 -t 0.05 -s key; then
|
|
case "$key" in
|
|
"$KEY_BRIGHTNESS_UP"|"${KEY_BRIGHTNESS_UP^^}") BRIGHTNESS=$(adjust "$BRIGHTNESS" "$STEP") ;;
|
|
"$KEY_BRIGHTNESS_DOWN"|"${KEY_BRIGHTNESS_DOWN^^}") BRIGHTNESS=$(adjust "$BRIGHTNESS" "-$STEP") ;;
|
|
"$KEY_EXPOSURE_UP"|"${KEY_EXPOSURE_UP^^}") EXPOSURE=$(adjust "$EXPOSURE" "$STEP") ;;
|
|
"$KEY_EXPOSURE_DOWN"|"${KEY_EXPOSURE_DOWN^^}") EXPOSURE=$(adjust "$EXPOSURE" "-$STEP") ;;
|
|
"$KEY_RESET"|"${KEY_RESET^^}") BRIGHTNESS="${DEFAULT_BRIGHTNESS:-auto}"; EXPOSURE="${DEFAULT_EXPOSURE:-auto}" ;;
|
|
"$KEY_CAPTURE"|"${KEY_CAPTURE^^}")
|
|
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
|
|
|