Skip to content
Snippets Groups Projects
Commit 017b9611 authored by Rolf Niepraschk's avatar Rolf Niepraschk
Browse files

umgeschrieben, vereinfacht, 2 Parameter

parent 515fc4ea
No related branches found
No related tags found
No related merge requests found
#!/bin/bash #!/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 # 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 # Parameter1 = Anzahl der erzeugten Bilddateien
# (wenn angegeben, dann kein Exponenent) #
# Parameter2 = Anzahl der Einzelziffern
MAIN="SRG-2" # device name MAIN="SRG-2" # device name
IMAGE_DIR=./images IMAGE_DIR=./images
MAX_FILES=10 MAX_DIGITS=6 # do not edit!
MAX_DIGITS=6 MAX_FILES=10 # do not edit!
NUMBER_OF_DIGITS=$MAX_DIGITS
SHOW_EXP=1
if [ -n "$1" ]; then if [ -n "$1" ]; then
NUMBER_OF_DIGITS=$1 MAX_FILES=$1
SHOW_EXP=0 if [ -n "$2" ]; then
else SHOW_EXP=0
NUMBER_OF_DIGITS=$MAX_DIGITS NUMBER_OF_DIGITS=$2
SHOW_EXP=1 fi
fi fi
if (( $NUMBER_OF_DIGITS > $MAX_DIGITS )); then if (( $NUMBER_OF_DIGITS > $MAX_DIGITS )); then
NUMBER_OF_DIGITS=$MAX_DIGITS NUMBER_OF_DIGITS=$MAX_DIGITS
fi else
if (( $NUMBER_OF_DIGITS < 1 )); then if (( $NUMBER_OF_DIGITS < 1 )); then
NUMBER_OF_DIGITS=1 NUMBER_OF_DIGITS=1
fi
fi fi
rm -rf "$IMAGE_DIR" rm -rf "$IMAGE_DIR"
...@@ -47,98 +52,98 @@ digitFile[8]='digit-8.png' ...@@ -47,98 +52,98 @@ digitFile[8]='digit-8.png'
digitFile[9]='digit-9.png' digitFile[9]='digit-9.png'
digitFile[99]=$emptyCanvas digitFile[99]=$emptyCanvas
digitPos[10]='+119+177' digitPos[1]='+119+177'
digitPos[9]='+161.4+177' digitPos[2]='+161.4+177'
digitPos[8]='+203.8+177' digitPos[3]='+203.8+177'
digitPos[7]='+246.2+177' digitPos[4]='+246.2+177'
digitPos[6]='+288.6+177' digitPos[5]='+288.6+177'
digitPos[5]='+331+177' digitPos[6]='+331+177'
digitPos[4]='+373.4+177' digitPos[7]='+373.4+177'
digitPos[3]='+415.8+177' digitPos[8]='+415.8+177'
digitPos[2]='+458.2+177' digitPos[9]='+458.2+177'
digitPos[1]='+500.6+177' digitPos[10]='+500.6+177'
esignPos=${digitPos[3]} dotPos[1]=${digitPos[1]}
dotPos[2]=${digitPos[2]}
dotPos[10]='+119+177' dotPos[3]=${digitPos[3]}
dotPos[9]='+161.4+177' dotPos[4]=${digitPos[4]}
dotPos[8]='+203.8+177' dotPos[5]=${digitPos[5]}
dotPos[7]='+246.2+177' dotPos[6]=${digitPos[6]}
dotPos[6]='+288.6+177' dotPos[7]=${digitPos[7]}
dotPos[5]='+331+177' dotPos[8]=${digitPos[8]}
dotPos[4]='+373.4+177' dotPos[9]=${digitPos[9]}
dotPos[3]='+415.8+177' dotPos[10]=${digitPos[10]}
dotPos[2]='+458.2+177'
dotPos[1]='+500.6+177'
for ((FNb=1; FNb<=MAX_FILES; FNb++)); do for ((FNb=1; FNb<=MAX_FILES; FNb++)); do
DPR=$((RANDOM % 6 + 5)) # random dot position (5..10) if (( $SHOW_EXP > 0 )); then
ESIGN=$((RANDOM % 2)) # random (0|1=' '|-) if [ $((RANDOM % 2)) == 1 ]; then # random sign (0|1)
if [ $ESIGN == 1 ]; then esignFile=$minusFile
ESF=$minusFile # sign file esignChar='-'
ESCH='-' # sign character else
esignFile=$emptyCanvas
esignChar='_'
fi
DNR[9]=$((RANDOM % 10))
DIGIT9=${digitFile[ ${DNR[9]} ]}
DNR[10]=$((RANDOM % 10))
DIGIT10=${digitFile[ ${DNR[10]} ]}
eSep='_'
else else
ESF=$emptyCanvas esignFile=$emptyCanvas
ESCH='_' esignChar=''
fi 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) DNR[$i]=$((RANDOM % 10)) # random digit number (0..9)
if [ $DPR == $i ]; then if [ $DPR == $i ]; then
DF[$i]="$dotFile" DF[$i]="$dotFile"
DP[$i]="." # dot character dotChar[$i]="." # dot character
else else
DF[$i]=$emptyCanvas DF[$i]=$emptyCanvas
DP[$i]="" dotChar[$i]=""
fi fi
done 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"
value="" value=""
for (( i=1; i<=$MAX_DIGITS; i++ )); do for (( i=1; i<=$MAX_DIGITS; i++ )); do
if (( $i <= $NUMBER_OF_DIGITS )); then if (( $i <= $NUMBER_OF_DIGITS )); then
eval DIGIT$i=${digitFile[ ${DNR[i+4]} ]} eval DIGIT$i=${digitFile[ ${DNR[i]} ]}
eval DF$i=${DF[i+4]} eval DOT$i=${DF[i]}
value+="${DNR[i+4]}${DP[i+4]}" value+="${DNR[i]}${dotChar[i]}"
else else
eval DIGIT$i=$emptyCanvas; eval DIGIT$i=$emptyCanvas;
eval DF$i=$emptyCanvas; eval DOT$i=$emptyCanvas;
fi fi
done done
value+="$eSep$esignChar${DNR[9]}${DNR[10]}"
if (( $SHOW_EXP > 0 )); then
value+="E${DNR[2]}${DNR[1]}"
fi
fname="$IMAGE_DIR/$MAIN@$value@.png" fname="$IMAGE_DIR/$MAIN@$value@.png"
convert body.png \ convert body.png \
$DIGIT1 -geometry ${digitPos[10]} -composite \ $DIGIT1 -geometry ${digitPos[1]} -composite \
$DF1 -geometry ${dotPos[10]} -composite \ $DOT1 -geometry ${dotPos[1]} -composite \
$DIGIT2 -geometry ${digitPos[9]} -composite \ $DIGIT2 -geometry ${digitPos[2]} -composite \
$DF2 -geometry ${dotPos[9]} -composite \ $DOT2 -geometry ${dotPos[2]} -composite \
$DIGIT3 -geometry ${digitPos[8]} -composite \ $DIGIT3 -geometry ${digitPos[3]} -composite \
$DF3 -geometry ${dotPos[8]} -composite \ $DOT3 -geometry ${dotPos[3]} -composite \
$DIGIT4 -geometry ${digitPos[7]} -composite \ $DIGIT4 -geometry ${digitPos[4]} -composite \
$DF4 -geometry ${dotPos[7]} -composite \ $DOT4 -geometry ${dotPos[4]} -composite \
$DIGIT5 -geometry ${digitPos[6]} -composite \ $DIGIT5 -geometry ${digitPos[5]} -composite \
$DF5 -geometry ${dotPos[6]} -composite \ $DOT5 -geometry ${dotPos[5]} -composite \
$DIGIT6 -geometry ${digitPos[5]} -composite \ $DIGIT6 -geometry ${digitPos[6]} -composite \
$DF6 -geometry ${dotPos[5]} -composite \ $DOT6 -geometry ${dotPos[6]} -composite \
$ESF -geometry $esignPos -composite \ $esignFile -geometry ${digitPos[8]} -composite \
${digitFile[ ${DNR[2]} ]} -geometry ${digitPos[2]} -composite \ $DIGIT9 -geometry ${digitPos[9]} -composite \
${DF[2]} -geometry ${dotPos[2]} -composite \ $DIGIT10 -geometry ${digitPos[10]} -composite \
${digitFile[ ${DNR[1]} ]} -geometry ${digitPos[1]} -composite \
${DF[1]} -geometry ${dotPos[1]} -composite \
$fname $fname
exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname
echo -e "$FNb:\t$fname" echo -e "$FNb:\t$fname"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment