From f5dc96334f8109224ad642ea1341747f35467721 Mon Sep 17 00:00:00 2001 From: niepra01 <rolf.niepraschk@ptb.de> Date: Mon, 3 Apr 2017 08:49:57 +0200 Subject: [PATCH] umgeschrieben, vereinfacht, 2 Parameter --- FLUKE-8840A/createImages | 159 ++++++++++++++++++--------------------- 1 file changed, 75 insertions(+), 84 deletions(-) diff --git a/FLUKE-8840A/createImages b/FLUKE-8840A/createImages index 050ba3f..75b32b0 100755 --- a/FLUKE-8840A/createImages +++ b/FLUKE-8840A/createImages @@ -1,14 +1,26 @@ #!/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 mit zufälliger Anzeige # +# Parameter1 = Anzahl der erzeugten Bilddateien +# +# Parameter2 = Anzahl der Einzelziffern MAIN="FLUKE-8840A" # 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 + +if [ -n "$1" ]; then + MAX_FILES=$1 + if [ -n "$2" ]; then + NUMBER_OF_DIGITS=$2 + fi +fi rm -rf "$IMAGE_DIR" mkdir -p "$IMAGE_DIR" @@ -30,44 +42,48 @@ digitFile[8]='digit-8.png' digitFile[9]='digit-9.png' digitFile[99]=$emptyCanvas -digitPos[6]='+192+173.65' -digitPos[5]='+226+173.65' -digitPos[4]='+260+173.65' -digitPos[3]='+294+173.65' -digitPos[2]='+328+173.65' -digitPos[1]='+362+173.65' +digitPos[1]='+192+173.65' +digitPos[2]='+226+173.65' +digitPos[3]='+260+173.65' +digitPos[4]='+294+173.65' +digitPos[5]='+328+173.65' +digitPos[6]='+362+173.65' -dotPos[6]='+192+173.65' -dotPos[5]='+226+173.65' -dotPos[4]='+260+173.65' -dotPos[3]='+294+173.65' -dotPos[2]='+328+173.65' -dotPos[1]='+362+173.65' +dotPos[1]=${digitPos[1]} +dotPos[2]=${digitPos[2]} +dotPos[3]=${digitPos[3]} +dotPos[4]=${digitPos[4]} +dotPos[5]=${digitPos[5]} +dotPos[6]=${digitPos[6]} signPos='+187+173' +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[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 -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="_" +DPR=$((RANDOM % $NUMBER_OF_DIGITS + 1)) # random dot position (1..$NUMBER_OF_DIGITS) +for (( i=1; i<=$MAX_DIGITS; i++ )); do + if [ $i == 1 ]; then # first digit is "1" combined with "+" or "-" + DNR[$i]=1 + if [ $((RANDOM % 2)) == 1 ]; then # random sign (0|1) + signFile=$minusFile + signChar='-' else - DNR6="1" + signFile=$plusFile + signChar='+' fi - # random digit number (99|1) else DNR[$i]=$((RANDOM % 10)) # random digit number (0..9) fi @@ -77,28 +93,37 @@ for i in {1..6}; do else DF[$i]=$emptyCanvas DP[$i]="" + fi +done + +value="${signChar}" +for (( i=1; i<=$MAX_DIGITS; i++ )); do + if (( $i <= $NUMBER_OF_DIGITS )); then + eval DIGIT$i=${digitFile[ ${DNR[i]} ]} + eval DOT$i=${DF[i]} + value+="${NUM2CHAR[ ${DNR[i]} ]}${DP[i]}" + else + eval DIGIT$i=$emptyCanvas; + eval DOT$i=$emptyCanvas; 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]}" - 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 $signPos -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 \ $fname exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname @@ -108,45 +133,11 @@ 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 ----------------------------------------------------------------------- Auslesen der Exif-Daten: -exiv2 -g Exif.Image.ImageDescription -P v ./images/151.108@GERAET_X.png +exiv2 -g Exif.Image.ImageDescription -P v ./images/FLUKE-8840A@+3724.05@.png --> value=151.108 -- GitLab