diff --git a/MKS-270/createImages b/MKS-270/createImages index 02f364c41758ca9dbda671c4534b31fadb944378..59b8d9180f58d8ebb3c498f7b6350dd8969b251f 100755 --- a/MKS-270/createImages +++ b/MKS-270/createImages @@ -1,21 +1,44 @@ #!/bin/bash # -# Rolf Niepraschk <Rolf.Niepraschk@ptb.de>, 2016-12-14 +# Rolf Niepraschk <Rolf.Niepraschk@ptb.de>, 2017-04-03 # # Erzeugt aus einem leeren Messgeräte-Bild und neun 7-Segment-Bildern -# neue Messgeräte-Bilder mit zufälliger 6-stelliger Anzeige +# neue Messgeräte-Bilder # +# Parameter1 = Anzahl der erzeugten Bilddateien +# +# Parameter2 = Anzahl der Einzelziffern -MAIN="MKS-270" # device name +MAIN="SRG-2" # device name IMAGE_DIR=./images -MAX_FILES=10 +MAX_DIGITS=6 # do not edit! +MAX_FILES=10 # do not edit! +NUMBER_OF_DIGITS=$MAX_DIGITS + +SHOW_EXP=1 + +if [ -n "$1" ]; then + MAX_FILES=$1 + if [ -n "$2" ]; then + SHOW_EXP=0 + NUMBER_OF_DIGITS=$2 + fi +fi + +if (( $NUMBER_OF_DIGITS > $MAX_DIGITS )); then + NUMBER_OF_DIGITS=$MAX_DIGITS +else + if (( $NUMBER_OF_DIGITS < 1 )); then + NUMBER_OF_DIGITS=1 + fi +fi rm -rf "$IMAGE_DIR" mkdir -p "$IMAGE_DIR" -dotFile='dot.png' -plusFile='plus.png' -minusFile='minus.png' +_dotFile='dot.png' +_plusFile='plus.png' +_minusFile='minus.png' emptyCanvas='xc:transparent' digitFile[0]='digit-0.png' @@ -28,78 +51,104 @@ digitFile[6]='digit-6.png' digitFile[7]='digit-7.png' digitFile[8]='digit-8.png' digitFile[9]='digit-9.png' +digitFile[98]=$emptyCanvas digitFile[99]=$emptyCanvas -digitPos[7]='+133+151' -digitPos[6]='+133+151' -digitPos[5]='+193+151' -digitPos[4]='+253+151' -digitPos[3]='+313+151' -digitPos[2]='+373+151' -digitPos[1]='+433+151' - -dotPos[6]='+133+151' -dotPos[5]='+193+151' -dotPos[4]='+253+151' -dotPos[3]='+313+151' -dotPos[2]='+373+151' -dotPos[1]='+433+151' - -signPos=${digitPos[7]} +digitPos[1]='+133+151' +digitPos[2]='+193+151' +digitPos[3]='+253+151' +digitPos[4]='+313+151' +digitPos[5]='+373+151' +digitPos[6]='+433+151' + +dotPos[1]=${digitPos[1]} +dotPos[2]=${digitPos[2]} +dotPos[3]=${digitPos[3]} +dotPos[4]=${digitPos[4]} +dotPos[5]=${digitPos[5]} +dotPos[6]=${digitPos[6]} + +NUM2CHAR[0]='0' +NUM2CHAR[1]='1' +NUM2CHAR[2]='2' +NUM2CHAR[3]='3' +NUM2CHAR[4]='4' +NUM2CHAR[5]='5' +NUM2CHAR[6]='6' +NUM2CHAR[7]='7' +NUM2CHAR[8]='8' +NUM2CHAR[9]='9' +NUM2CHAR[98]='' +NUM2CHAR[99]='_' for ((FNb=1; FNb<=MAX_FILES; FNb++)); do -DPR=$((RANDOM % 6 + 1)) # random dot position (1..6) SIGN=$((RANDOM % 2)) # random (0|1=+|-) if [ $SIGN == 0 ]; then - SF=$plusFile # sign file - SCH='+' # sign character + signFile=$_plusFile # sign file + signChar='+' # sign character else - SF=$minusFile - SCH='-' -fi - -for i in {1..6}; do - if [ $i == 6 ]; then # position 6: "1" or nothing - DNR[6]=$((RANDOM % 2)) - if [ ${DNR[6]} == 0 ]; then - DNR[6]=99 - DNR6="_" + signFile=$_minusFile + signChar='-' +fi + +DPR=$((RANDOM % 6 + 1)) # random dot position (1..6) + +for (( i=1; i<=$MAX_DIGITS; i++ )); do + if [ $i == 1 ]; then # position 1: "1" or nothing + if [ $((RANDOM % 2)) == 0 ]; then + if [ $DPR == 1 ]; then + DNR[1]=98 # no space + else + DNR[1]=99 # space + fi else - DNR6="1" + DNR[1]=1 fi # random digit number (99|1) else DNR[$i]=$((RANDOM % 10)) # random digit number (0..9) fi if [ $DPR == $i ]; then - DF[$i]="$dotFile" - DP[$i]="." # dot character + dotFile[$i]="$_dotFile" + dotChar[$i]="." # dot character else - DF[$i]=$emptyCanvas - DP[$i]="" + dotFile[$i]=$emptyCanvas + dotChar[$i]="" fi done -value="${SCH}${DNR6}${DP[6]}${DNR[5]}${DP[5]}${DNR[4]}${DP[4]}" -value+="${DNR[3]}${DP[3]}${DNR[2]}${DP[2]}${DNR[1]}${DP[1]}" +value="${signChar}${DNR6}${dotChar[6]}${DNR[5]}${dotChar[5]}${DNR[4]}${dotChar[4]}" +value+="${DNR[3]}${dotChar[3]}${DNR[2]}${dotChar[2]}${DNR[1]}${dotChar[1]}" + +value="${signChar}" +for (( i=1; i<=$MAX_DIGITS; i++ )); do + if (( $i <= $NUMBER_OF_DIGITS )); then + eval DIGIT$i=${digitFile[ ${DNR[i]} ]} + eval DF$i=${dotFile[i]} + value+="${NUM2CHAR[${DNR[i]}]}${dotChar[i]}" + else + eval DIGIT$i=$emptyCanvas; + eval DF$i=$emptyCanvas; + fi +done fname="$IMAGE_DIR/$MAIN@$value@.png" convert body.png \ - $SF -geometry $signPos -composite \ - ${digitFile[ ${DNR[6]} ]} -geometry ${digitPos[6]} -composite \ - ${DF[6]} -geometry ${dotPos[6]} -composite \ - ${digitFile[ ${DNR[5]} ]} -geometry ${digitPos[5]} -composite \ - ${DF[5]} -geometry ${dotPos[5]} -composite \ - ${digitFile[ ${DNR[4]} ]} -geometry ${digitPos[4]} -composite \ - ${DF[4]} -geometry ${dotPos[4]} -composite \ - ${digitFile[ ${DNR[3]} ]} -geometry ${digitPos[3]} -composite \ - ${DF[3]} -geometry ${dotPos[3]} -composite \ - ${digitFile[ ${DNR[2]} ]} -geometry ${digitPos[2]} -composite \ - ${DF[2]} -geometry ${dotPos[2]} -composite \ - ${digitFile[ ${DNR[1]} ]} -geometry ${digitPos[1]} -composite \ - ${DF[1]} -geometry ${dotPos[1]} -composite \ + $signFile -geometry ${digitPos[1]} -composite \ + $DIGIT1 -geometry ${digitPos[1]} -composite \ + $DF1 -geometry ${dotPos[1]} -composite \ + $DIGIT2 -geometry ${digitPos[2]} -composite \ + $DF2 -geometry ${dotPos[2]} -composite \ + $DIGIT3 -geometry ${digitPos[3]} -composite \ + $DF3 -geometry ${dotPos[3]} -composite \ + $DIGIT4 -geometry ${digitPos[4]} -composite \ + $DF4 -geometry ${dotPos[4]} -composite \ + $DIGIT5 -geometry ${digitPos[5]} -composite \ + $DF5 -geometry ${dotPos[5]} -composite \ + $DIGIT6 -geometry ${digitPos[6]} -composite \ + $DF6 -geometry ${dotPos[6]} -composite \ $fname exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname @@ -109,40 +158,6 @@ echo -e "$FNb:\t$fname" done # MAX_FILES exit - -Test: - -SF=$plusFile -fname=yy.png -DNR[6]=1 -DNR[5]=7 -DNR[4]=3 -DNR[3]=0 -DNR[2]=5 -DNR[1]=6 - -DF[6]=$dotFile -DF[5]=$emptyCanvas -DF[4]=$emptyCanvas -DF[3]=$emptyCanvas -DF[2]=$emptyCanvas -DF[1]=$emptyCanvas - -convert body.png \ - $SF -geometry $signPos -composite \ - ${digitFile[ ${DNR[6]} ]} -geometry ${digitPos[6]} -composite \ - ${DF[6]} -geometry ${dotPos[6]} -composite \ - ${digitFile[ ${DNR[5]} ]} -geometry ${digitPos[5]} -composite \ - ${DF[5]} -geometry ${dotPos[5]} -composite \ - ${digitFile[ ${DNR[4]} ]} -geometry ${digitPos[4]} -composite \ - ${DF[4]} -geometry ${dotPos[4]} -composite \ - ${digitFile[ ${DNR[3]} ]} -geometry ${digitPos[3]} -composite \ - ${DF[3]} -geometry ${dotPos[3]} -composite \ - ${digitFile[ ${DNR[2]} ]} -geometry ${digitPos[2]} -composite \ - ${DF[2]} -geometry ${dotPos[2]} -composite \ - ${digitFile[ ${DNR[1]} ]} -geometry ${digitPos[1]} -composite \ - ${DF[1]} -geometry ${dotPos[1]} -composite \ - yy.png -----------------------------------------------------------------------