From 017b9611efaad791df9c5cb7874aa7dc3e796537 Mon Sep 17 00:00:00 2001 From: niepra01 <rolf.niepraschk@ptb.de> Date: Mon, 3 Apr 2017 11:30:05 +0200 Subject: [PATCH] umgeschrieben, vereinfacht, 2 Parameter --- SRG-2/createImages | 171 +++++++++++++++++++++++---------------------- 1 file changed, 88 insertions(+), 83 deletions(-) diff --git a/SRG-2/createImages b/SRG-2/createImages index 2c5cafd..6684448 100755 --- a/SRG-2/createImages +++ b/SRG-2/createImages @@ -1,31 +1,36 @@ #!/bin/bash # -# Rolf Niepraschk <Rolf.Niepraschk@ptb.de>, 2017-03-27 +# 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 # -# Parameter=Anzahl der Mantissenziffern -# (wenn angegeben, dann kein Exponenent) +# Parameter1 = Anzahl der erzeugten Bilddateien +# +# Parameter2 = Anzahl der Einzelziffern MAIN="SRG-2" # device name IMAGE_DIR=./images -MAX_FILES=10 -MAX_DIGITS=6 +MAX_DIGITS=6 # do not edit! +MAX_FILES=10 # do not edit! +NUMBER_OF_DIGITS=$MAX_DIGITS + +SHOW_EXP=1 if [ -n "$1" ]; then - NUMBER_OF_DIGITS=$1 - SHOW_EXP=0 -else - NUMBER_OF_DIGITS=$MAX_DIGITS - SHOW_EXP=1 + 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 -fi -if (( $NUMBER_OF_DIGITS < 1 )); then - NUMBER_OF_DIGITS=1 +else + if (( $NUMBER_OF_DIGITS < 1 )); then + NUMBER_OF_DIGITS=1 + fi fi rm -rf "$IMAGE_DIR" @@ -47,98 +52,98 @@ digitFile[8]='digit-8.png' digitFile[9]='digit-9.png' digitFile[99]=$emptyCanvas -digitPos[10]='+119+177' -digitPos[9]='+161.4+177' -digitPos[8]='+203.8+177' -digitPos[7]='+246.2+177' -digitPos[6]='+288.6+177' -digitPos[5]='+331+177' -digitPos[4]='+373.4+177' -digitPos[3]='+415.8+177' -digitPos[2]='+458.2+177' -digitPos[1]='+500.6+177' - -esignPos=${digitPos[3]} - -dotPos[10]='+119+177' -dotPos[9]='+161.4+177' -dotPos[8]='+203.8+177' -dotPos[7]='+246.2+177' -dotPos[6]='+288.6+177' -dotPos[5]='+331+177' -dotPos[4]='+373.4+177' -dotPos[3]='+415.8+177' -dotPos[2]='+458.2+177' -dotPos[1]='+500.6+177' +digitPos[1]='+119+177' +digitPos[2]='+161.4+177' +digitPos[3]='+203.8+177' +digitPos[4]='+246.2+177' +digitPos[5]='+288.6+177' +digitPos[6]='+331+177' +digitPos[7]='+373.4+177' +digitPos[8]='+415.8+177' +digitPos[9]='+458.2+177' +digitPos[10]='+500.6+177' + +dotPos[1]=${digitPos[1]} +dotPos[2]=${digitPos[2]} +dotPos[3]=${digitPos[3]} +dotPos[4]=${digitPos[4]} +dotPos[5]=${digitPos[5]} +dotPos[6]=${digitPos[6]} +dotPos[7]=${digitPos[7]} +dotPos[8]=${digitPos[8]} +dotPos[9]=${digitPos[9]} +dotPos[10]=${digitPos[10]} for ((FNb=1; FNb<=MAX_FILES; FNb++)); do -DPR=$((RANDOM % 6 + 5)) # random dot position (5..10) -ESIGN=$((RANDOM % 2)) # random (0|1=' '|-) -if [ $ESIGN == 1 ]; then - ESF=$minusFile # sign file - ESCH='-' # sign character +if (( $SHOW_EXP > 0 )); then + if [ $((RANDOM % 2)) == 1 ]; then # random sign (0|1) + esignFile=$minusFile + esignChar='-' + else + esignFile=$emptyCanvas + esignChar='_' + fi + DNR[9]=$((RANDOM % 10)) + DIGIT9=${digitFile[ ${DNR[9]} ]} + DNR[10]=$((RANDOM % 10)) + DIGIT10=${digitFile[ ${DNR[10]} ]} + eSep='_' else - ESF=$emptyCanvas - ESCH='_' -fi + esignFile=$emptyCanvas + esignChar='' + DNR[9]='' + DIGIT9=$emptyCanvas + DNR[10]='' + DIGIT10=$emptyCanvas + eSep='' +fi -for i in {1..10}; do +DPR=$((RANDOM % $NUMBER_OF_DIGITS + 1)) # random dot position (1..$NUMBER_OF_DIGITS) +for (( i=1; i<=$MAX_DIGITS; i++ )); do DNR[$i]=$((RANDOM % 10)) # random digit number (0..9) if [ $DPR == $i ]; then DF[$i]="$dotFile" - DP[$i]="." # dot character + dotChar[$i]="." # dot character else DF[$i]=$emptyCanvas - DP[$i]="" + dotChar[$i]="" fi -done - -value="${DNR[10]}${DP[10]}${DNR[9]}${DP[9]}${DNR[8]}${DP[8]}" -value+="${DNR[7]}${DP[7]}${DNR[6]}${DP[6]}${DNR[5]}${DP[5]}" -value+="_$ESCH" -value+="${DNR[2]}${DP[2]}${DNR[1]}${DP[1]}" - -fname="$IMAGE_DIR/$MAIN@$value@.png" +done value="" for (( i=1; i<=$MAX_DIGITS; i++ )); do - if (( $i <= $NUMBER_OF_DIGITS )); then - eval DIGIT$i=${digitFile[ ${DNR[i+4]} ]} - eval DF$i=${DF[i+4]} - value+="${DNR[i+4]}${DP[i+4]}" + if (( $i <= $NUMBER_OF_DIGITS )); then + eval DIGIT$i=${digitFile[ ${DNR[i]} ]} + eval DOT$i=${DF[i]} + value+="${DNR[i]}${dotChar[i]}" else eval DIGIT$i=$emptyCanvas; - eval DF$i=$emptyCanvas; + eval DOT$i=$emptyCanvas; fi done - -if (( $SHOW_EXP > 0 )); then - value+="E${DNR[2]}${DNR[1]}" -fi +value+="$eSep$esignChar${DNR[9]}${DNR[10]}" fname="$IMAGE_DIR/$MAIN@$value@.png" convert body.png \ - $DIGIT1 -geometry ${digitPos[10]} -composite \ - $DF1 -geometry ${dotPos[10]} -composite \ - $DIGIT2 -geometry ${digitPos[9]} -composite \ - $DF2 -geometry ${dotPos[9]} -composite \ - $DIGIT3 -geometry ${digitPos[8]} -composite \ - $DF3 -geometry ${dotPos[8]} -composite \ - $DIGIT4 -geometry ${digitPos[7]} -composite \ - $DF4 -geometry ${dotPos[7]} -composite \ - $DIGIT5 -geometry ${digitPos[6]} -composite \ - $DF5 -geometry ${dotPos[6]} -composite \ - $DIGIT6 -geometry ${digitPos[5]} -composite \ - $DF6 -geometry ${dotPos[5]} -composite \ - $ESF -geometry $esignPos -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 \ + $DIGIT1 -geometry ${digitPos[1]} -composite \ + $DOT1 -geometry ${dotPos[1]} -composite \ + $DIGIT2 -geometry ${digitPos[2]} -composite \ + $DOT2 -geometry ${dotPos[2]} -composite \ + $DIGIT3 -geometry ${digitPos[3]} -composite \ + $DOT3 -geometry ${dotPos[3]} -composite \ + $DIGIT4 -geometry ${digitPos[4]} -composite \ + $DOT4 -geometry ${dotPos[4]} -composite \ + $DIGIT5 -geometry ${digitPos[5]} -composite \ + $DOT5 -geometry ${dotPos[5]} -composite \ + $DIGIT6 -geometry ${digitPos[6]} -composite \ + $DOT6 -geometry ${dotPos[6]} -composite \ + $esignFile -geometry ${digitPos[8]} -composite \ + $DIGIT9 -geometry ${digitPos[9]} -composite \ + $DIGIT10 -geometry ${digitPos[10]} -composite \ $fname - + exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname echo -e "$FNb:\t$fname" -- GitLab