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

Code vereinfacht; mehr Variationen

parent 3c6778df
No related branches found
No related tags found
No related merge requests found
#!/bin/bash #!/bin/bash
# #
# Rolf Niepraschk <Rolf.Niepraschk@ptb.de>, 2017-04-03 # Rolf Niepraschk <Rolf.Niepraschk@ptb.de>, 2017-04-07
# #
# 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 # neue Messgeräte-Bilder
...@@ -11,16 +11,16 @@ ...@@ -11,16 +11,16 @@
MAIN="SRG-2" # device name MAIN="SRG-2" # device name
IMAGE_DIR=./images IMAGE_DIR=./images
MAX_DIGITS=6 # do not edit! MAX_DIGITS=10 # do not edit!
MAX_FILES=10 # do not edit! MAX_FILES=10 # do not edit!
NUMBER_OF_DIGITS=$MAX_DIGITS NUMBER_OF_DIGITS=$MAX_DIGITS
SHOW_EXP=1 SHOW_EXP=true
if [ -n "$1" ]; then if [ -n "$1" ]; then
MAX_FILES=$1 MAX_FILES=$1
if [ -n "$2" ]; then if [ -n "$2" ]; then
SHOW_EXP=0 SHOW_EXP=false
NUMBER_OF_DIGITS=$2 NUMBER_OF_DIGITS=$2
fi fi
fi fi
...@@ -31,12 +31,13 @@ else ...@@ -31,12 +31,13 @@ else
if (( $NUMBER_OF_DIGITS < 1 )); then if (( $NUMBER_OF_DIGITS < 1 )); then
NUMBER_OF_DIGITS=1 NUMBER_OF_DIGITS=1
fi fi
fi fi
rm -rf "$IMAGE_DIR" rm -rf "$IMAGE_DIR"
mkdir -p "$IMAGE_DIR" mkdir -p "$IMAGE_DIR"
dotFile='dot.png' dotFile='dot.png'
plusFile='plus.png'
minusFile='minus.png' minusFile='minus.png'
emptyCanvas='xc:transparent' emptyCanvas='xc:transparent'
...@@ -50,7 +51,21 @@ digitFile[6]='digit-6.png' ...@@ -50,7 +51,21 @@ digitFile[6]='digit-6.png'
digitFile[7]='digit-7.png' digitFile[7]='digit-7.png'
digitFile[8]='digit-8.png' digitFile[8]='digit-8.png'
digitFile[9]='digit-9.png' digitFile[9]='digit-9.png'
digitFile[99]=$emptyCanvas digitFile[10]='minus.png'
digitFile[11]=$emptyCanvas
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[10]='-'
NUM2CHAR[11]='_'
digitPos[1]='+119+177' digitPos[1]='+119+177'
digitPos[2]='+161.4+177' digitPos[2]='+161.4+177'
...@@ -76,87 +91,62 @@ dotPos[10]=${digitPos[10]} ...@@ -76,87 +91,62 @@ dotPos[10]=${digitPos[10]}
for ((FNb=1; FNb<=MAX_FILES; FNb++)); do for ((FNb=1; FNb<=MAX_FILES; FNb++)); do
if (( $SHOW_EXP > 0 )); then value=""
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
esignFile=$emptyCanvas
esignChar=''
DNR[9]=''
DIGIT9=$emptyCanvas
DNR[10]=''
DIGIT10=$emptyCanvas
eSep=''
fi
DPR=$((RANDOM % $NUMBER_OF_DIGITS + 1)) # random dot position (1..$NUMBER_OF_DIGITS) DPR=$((RANDOM % $NUMBER_OF_DIGITS + 1)) # random dot position (1..$NUMBER_OF_DIGITS)
for (( i=1; i<=$MAX_DIGITS; i++ )); do for (( i=1; i<=$MAX_DIGITS; i++ )); do
DNR[$i]=$((RANDOM % 10)) # random digit number (0..9)
if [ $DPR == $i ]; then
DF[$i]="$dotFile"
dotChar[$i]="." # dot character
else
DF[$i]=$emptyCanvas
dotChar[$i]=""
fi
done
value=""
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]} ]} R=$((RANDOM % 12)) # random digit number (0..11='0'..'_')
eval DOT$i=${DF[i]} eval DIGIT$i=${digitFile[R]}
value+="${DNR[i]}${dotChar[i]}" value+="${NUM2CHAR[R]}"
if [ $DPR == $i ]; then
eval DOT$i="$dotFile"
value+="."
else
eval DOT$i=$emptyCanvas;
fi
else else
eval DIGIT$i=$emptyCanvas; eval DIGIT$i=$emptyCanvas;
eval DOT$i=$emptyCanvas; eval DOT$i=$emptyCanvas;
fi fi
done done
value+="$eSep$esignChar${DNR[9]}${DNR[10]}"
fname="$IMAGE_DIR/$MAIN@$value@.png" fname="$IMAGE_DIR/$MAIN@$value@.png"
echo -e "$FNb:\t$fname"
convert body.png \ convert body.png \
$DIGIT1 -geometry ${digitPos[1]} -composite \ $DIGIT1 -geometry ${digitPos[1]} -composite \
$DOT1 -geometry ${dotPos[1]} -composite \ $DOT1 -geometry ${dotPos[1]} -composite \
$DIGIT2 -geometry ${digitPos[2]} -composite \ $DIGIT2 -geometry ${digitPos[2]} -composite \
$DOT2 -geometry ${dotPos[2]} -composite \ $DOT2 -geometry ${dotPos[2]} -composite \
$DIGIT3 -geometry ${digitPos[3]} -composite \ $DIGIT3 -geometry ${digitPos[3]} -composite \
$DOT3 -geometry ${dotPos[3]} -composite \ $DOT3 -geometry ${dotPos[3]} -composite \
$DIGIT4 -geometry ${digitPos[4]} -composite \ $DIGIT4 -geometry ${digitPos[4]} -composite \
$DOT4 -geometry ${dotPos[4]} -composite \ $DOT4 -geometry ${dotPos[4]} -composite \
$DIGIT5 -geometry ${digitPos[5]} -composite \ $DIGIT5 -geometry ${digitPos[5]} -composite \
$DOT5 -geometry ${dotPos[5]} -composite \ $DOT5 -geometry ${dotPos[5]} -composite \
$DIGIT6 -geometry ${digitPos[6]} -composite \ $DIGIT6 -geometry ${digitPos[6]} -composite \
$DOT6 -geometry ${dotPos[6]} -composite \ $DOT6 -geometry ${dotPos[6]} -composite \
$esignFile -geometry ${digitPos[8]} -composite \ $DIGIT7 -geometry ${digitPos[7]} -composite \
$DIGIT9 -geometry ${digitPos[9]} -composite \ $DOT7 -geometry ${dotPos[7]} -composite \
$DIGIT10 -geometry ${digitPos[10]} -composite \ $DIGIT8 -geometry ${digitPos[8]} -composite \
$DOT8 -geometry ${dotPos[8]} -composite \
$DIGIT9 -geometry ${digitPos[9]} -composite \
$DOT9 -geometry ${dotPos[9]} -composite \
$DIGIT10 -geometry ${digitPos[10]} -composite \
$DOT10 -geometry ${dotPos[10]} -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"
done # MAX_FILES done # MAX_FILES
exit exit
----------------------------------------------------------------------- -----------------------------------------------------------------------
Auslesen der Exif-Daten: 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/ADIXEN@???@.png
--> value=151.108 --> value=???
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