#!/bin/bash
COLOR = "green"
TARGET_EXTENSION = "jpg"
while [ [ " $# " -gt 0 ] ] ; do
case $1 in
-i| --imgpath) IMG_PATH = " ${ 2 } " ; shift ; ;
-1| --line1) line[ 0] = " ${ 2 } " ; shift ; ;
-2| --line2) line[ 1] = " ${ 2 } " ; shift ; ;
-t| --target) TARGET = " ${ 2 } " ; shift ; ;
-b| --baseimg) BASE_IMG = " ${ 2 } " ; shift ; ;
*) echo " Unknown parameter passed: $1 " ; exit 1 ; ;
esac
shift
done
if [ ! -e " ${ IMG_PATH } " ]
then
echo " Cannot find path for images \" ${ IMG_PATH } \" "
exit 10
fi
CHAR_PATH = " ${ IMG_PATH } /LCD_characters_ ${ COLOR } "
if [ ! -e " ${ CHAR_PATH } " ]
then
echo " Cannot find path for character-images \" ${ CHAR_PATH } \" "
exit 11
fi
if [ ${ BASE_IMG } ]
then
cp " ${ IMG_PATH } /manual-images/ ${ BASE_IMG } .png " /tmp/LCD_$$ .png
else
cp " ${ IMG_PATH } /LCD_green.png " /tmp/LCD_$$ .png
fi
special_flag = "false"
for ( ( n = 0; n<2; n++ ) )
do
y = $( bc -l <<< " 50 + $n * 50 " )
xpos = 0
for ( ( i = 0; i<${# line [ $n ] } ; i++ ) )
do
c = ${ line [ ${ n } ] : ${ i } : 1 }
if [ [ " ${ c } " = = "%" ] ]
then
if [ [ " ${ special_flag } " = = "false" ] ]
then
special_flag = "true"
special = ""
continue
else
special_flag = "false"
if [ ! -e " ${ CHAR_PATH } / ${ special } .png " ]
then
echo " Cannot find \" ${ CHAR_PATH } / ${ special } .png\". "
c = " "
else
c = ${ special }
fi
fi
fi
if [ [ " ${ special_flag } " = = "true" ] ]
then
special = " ${ special } ${ c } "
continue
fi
xpos = $(( xpos + 1 ))
if [ [ " ${ c } " != " " ] ]
then
if [ [ ${ c } = = "." ] ]
then
c = "dot"
fi
x = $( bc -l <<< " 230 + ${ xpos } * 30 " )
composite -gravity NorthWest -geometry " + ${ x } + ${ y } " " ${ CHAR_PATH } / ${ c } .png " /tmp/LCD_$$ .png /tmp/LCD_$$ .png
fi
done
done
convert /tmp/LCD_$$ .png /tmp/LCD_$$ .${ TARGET_EXTENSION }
if [ " ${ TARGET } " ]
then
mv /tmp/LCD_$$ .${ TARGET_EXTENSION } " ${ TARGET } "
else
echo " Created /tmp/LCD_ $$ . ${ TARGET_EXTENSION } "
fi