#!/bin/bash ##This creates a red to blue divergent colorbar with specified label and bounds. #### #Help #### Help(){ echo "This creates a colorbar image file with specified boundaries and tag" echo echo "Syntax: colorbar [-h|-o outfile|-x width|-y height] caption lobd hibd" echo "options:" echo "-h: print this help" echo "-o: Specify file to write to" echo "-x: Specify width of colorbar image. Cannot be used with -y" echo "-y: Specify height of colorbar image. Cannot be used with -x" echo "caption: Caption for the colorbar" echo "lobd: Lower bound of the color bar" echo "hibd: Upper bound of the color bar" } outfile='colorbar.png' declare -a args argnum=0 x=0 y=0 while [ $# -gt 0 ]; do unset OPTIND unset OPTARG #Parse Flags while getopts ':ho:x:y:' options; do case $options in h) Help break;; o) outfile="$OPTARG";; x) x="$OPTARG" if [ $y -ne 0 ]; then echo "Cannot use both -x and -y options" break fi ;; y) y="$OPTARG" if [ $x -ne 0 ]; then echo "Cannot use both -x and -y options" break fi ;; ?) esac done shift $((OPTIND-1)) args+=("$1") (( argnum++ )) shift done #Now pull out the required arguments if [ "$args" = "" ]; then Help elif [ $argnum -ne 3 ]; then echo "colorbar requires three positional arguments, you have supplied $argnum. Please view help" echo ${args[0]} ${args[1]} else msg="${args[0]}" lobd="${args[1]}" hibd="${args[2]}" #First copy colorbar file to current directory cp ~/typesetting/figure_templates/colorbar.png $outfile #Now create lower and upper labels convert -background " #FFF " -fill black -font Helvetica -size x196 label:"$lobd" tmp1.png convert -background " #FFF " -fill black -font Helvetica -size x196 label:"$hibd" tmp2.png convert +append -gravity center tmp1.png $outfile tmp2.png $outfile #Now create caption for image convert -background " #FFF " -fill black -font Helvetica -size x196 label:"$msg" tmp.png convert -append -gravity center tmp.png $outfile $outfile #Final step is resizing if [ $x -gt 0 ]; then convert -scale "$x"x $outfile $outfile fi if [ $y -gt 0 ]; then convert -scale x"$y" $outfile $outfile fi rm tmp.png tmp1.png tmp2.png fi