#!/bin/bash contrast=0 darkness=10 hex='d7afaf' hex_alt='111317' invert_flag='' darkness_color='black' help() { executable_path=$(basename "${0}") printf "Usage: %s {FLAGS} [FILE]\n\ ARGUMENTS:\n\ -h display this help menu\n\ -i invert original image colors before applying color effects (off by default)\n\ -p [d7afaf] Primary hex color\n\ -s [111317] Secondary hex color\n\ -c [0] Contrast\n\ -d [10] Darkness\n\ FILE Full path to original image file\n" "${executable_path}" exit 1 } while getopts "hb:d:c:p:s:i" flag 2>/dev/null; do case "${flag}" in h) help ;; d) darkness="${OPTARG}" ;; b) darkness_color='white' darkness="${OPTARG}" ;; c) contrast="${OPTARG}" ;; p) hex="${OPTARG//#/}" ;; s) hex_alt="${OPTARG//#/}" ;; i) invert_flag='-negate' ;; *) printf "[ERROR] Invalid flag: %s\n\n" "${flag}" help ;; esac done shift $((OPTIND - 1)) file="${1}" if [[ -z ${file} || ! -f "${file}" ]]; then printf '[ERROR] Please provide an image file!\n\n' help fi hex="${hex//#/}" hex_alt="${hex_alt//#/}" printf "darkness: %s\ncontrast: %s\nprimary color: #%s\nsecondary color: #%s\nfile: %s\n" "${darkness}" "${contrast}" "${hex}" "${hex_alt}" "${file}" new_filename=$(basename "${file}") convert "${file}" ${invert_flag} -contrast-stretch "${contrast}"% -fill "${darkness_color}" -colorize "${darkness}"% -set colorspace Gray -separate -average +level-colors "#${hex_alt},#${hex}" "${new_filename}-recolored-$(date +%Y-%m-%d_%H-%M-%S).jpg" #convert "${1}" -contrast-stretch 7% -set colorspace Gray -separate -average +level-colors "#111317","#d7afaf" "$(basename ${1})-recolored-$(date +%Y-%m-%d_%H-%M-%S).jpg" #convert "${1}" -linear-stretch 90% -fill black -colorize 5% -set colorspace Gray -separate -average +level-colors "#111317","#d7afaf" "$(basename ${1})-recolored-$(date +%Y-%m-%d_%H-%M-%S).jpg" #convert "${1}" -contrast-stretch 5% -fill black -colorize 5% -set colorspace Gray -separate -average +level-colors "#111317","#d7afaf" "$(basename ${1})-recolored-$(date +%Y-%m-%d_%H-%M-%S).jpg" #convert "${1}" -contrast-stretch 25% -fill black -colorize 25% -set colorspace Gray -separate -average +level-colors "#111317","#d7afaf" "$(basename ${1})-recolored-$(date +%Y-%m-%d_%H-%M-%S).jpg" #convert "${1}" -contrast-stretch 100% -fill black -colorize 25% -set colorspace Gray -separate -average +level-colors "#111317","#d7afaf" "$(basename ${1})-recolored-$(date +%Y-%m-%d_%H-%M-%S).jpg"