#!/bin/sh # # add a drop shadow to an image # # ############################# function usage { echo "Usage : $(basename $0) [ .. options .. ] image [out_image]" echo echo " Adds a shadow to the image." echo " options :" echo " -x : x offset " echo " -y : y offset" echo " -r : radius" echo " -b : blur" exit -1 } ############################# [ -z "$1" ] && usage ## default values X_OFFSET=8 Y_OFFSET=8 RADIUS=15 BLUR=80 ## parse options while getopts x:y:r:b: option do case $option in x) X_OFFSET=$OPTARG ;; y) Y_OFFSET=$OPTARG ;; r) RADIUS=$OPTARG ;; b) BLUR=$OPTARG ;; \?) usage ;; esac done shift $(($OPTIND - 1)) ## arguments after options [ -n "$1" ] && FILE=$1 [ -n "$2" ] && FILE_OUT=$2 ## verify input file existence if [ -z "$FILE" ] || [ ! -e "$FILE" ] then usage fi ## backup file if no output_file if [ -z "$FILE_OUT" ] then cp $FILE $FILE.bak FILE_OUT=$FILE fi ## ## main traitment ## ## script scheme (last line uses shell variables) cat > $FILE.tmp </dev/null 2>/dev/null rm -f $FILE.tmp