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

Code vereinfacht; mehr Variationen

parent 63dce882
No related branches found
No related tags found
No related merge requests found
#!/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
# neue Messgeräte-Bilder
......@@ -15,12 +15,12 @@ MAX_DIGITS=7 # do not edit!
MAX_FILES=10 # do not edit!
NUMBER_OF_DIGITS=$MAX_DIGITS
SHOW_EXP=1
SHOW_EXP=true
if [ -n "$1" ]; then
MAX_FILES=$1
if [ -n "$2" ]; then
SHOW_EXP=0
SHOW_EXP=false
NUMBER_OF_DIGITS=$2
fi
fi
......@@ -31,13 +31,13 @@ else
if (( $NUMBER_OF_DIGITS < 1 )); then
NUMBER_OF_DIGITS=1
fi
fi
fi
rm -rf "$IMAGE_DIR"
mkdir -p "$IMAGE_DIR"
mkdir -p "$IMAGE_DIR"
_dotFile='dot.png'
_minusFile='minus.png'
dotFile='dot.png'
minusFile='minus.png'
emptyCanvas='xc:transparent'
digitFile[0]='digit-0.png'
......@@ -50,7 +50,19 @@ digitFile[6]='digit-6.png'
digitFile[7]='digit-7.png'
digitFile[8]='digit-8.png'
digitFile[9]='digit-9.png'
digitFile[99]=$emptyCanvas # empty canvas
digitFile[10]='minus.png'
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]='-'
digitPos[1]='+185+220'
digitPos[2]='+207+220'
......@@ -60,90 +72,66 @@ digitPos[5]='+273+220'
digitPos[6]='+295+220'
digitPos[7]='+317+220'
dotPos[7]=${digitPos[7]}
dotPos[6]=${digitPos[6]}
dotPos[5]=${digitPos[5]}
dotPos[4]=${digitPos[4]}
dotPos[3]=${digitPos[3]}
dotPos[2]=${digitPos[2]}
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]}
for ((FNb=1; FNb<=MAX_FILES; FNb++)); 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
else
DF[$i]=$emptyCanvas
DP[$i]=""
fi
done
fname="$IMAGE_DIR/$MAIN@$value@.png"
value=""
for (( i=1; i<=$MAX_DIGITS; i++ )); do
DPR=$((RANDOM % $NUMBER_OF_DIGITS + 1)) # random dot position (1..$NUMBER_OF_DIGITS)
for (( i=1; i<=$MAX_DIGITS; i++ )); do
if (( $i <= $NUMBER_OF_DIGITS )); then
eval DIGIT$i=${digitFile[ ${DNR[i]} ]}
eval DF$i=${DF[i]}
value+="${DNR[i]}${DP[i]}"
R=$((RANDOM % 11)) # random digit number (0..10='0'..'-')
eval DIGIT$i=${digitFile[R]}
value+="${NUM2CHAR[R]}"
if [ $DPR == $i ]; then
eval DOT$i="$dotFile"
value+="."
else
eval DOT$i=$emptyCanvas;
fi
else
eval DIGIT$i=$emptyCanvas;
eval DF$i=$emptyCanvas;
eval DOT$i=$emptyCanvas;
fi
done
fname="$IMAGE_DIR/$MAIN@$value@.png"
fname="$IMAGE_DIR/$MAIN@$value@.png"
echo -e "$FNb:\t$fname"
convert body.png \
$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 \
$DIGIT7 -geometry ${digitPos[7]} -composite \
$DF7 -geometry ${dotPos[7]} -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 \
$DIGIT7 -geometry ${digitPos[7]} -composite \
$DOT7 -geometry ${dotPos[7]} -composite \
$fname
exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname
echo -e "$FNb:\t$fname"
done # MAX_FILES
exit
-----------------------------------------------------------------------
Auslesen der Exif-Daten:
exiv2 -g Exif.Image.ImageDescription -P v ./images/151.108@GERAET_X.png
--> value=151.108
echo 1: $DIGIT1 -geometry ${digitPos[7]} -composite
echo 2: $DF1 -geometry ${dotPos[7]} -composite
echo 3: $DIGIT2 -geometry ${digitPos[6]} -composite
echo 4: $DF2 -geometry ${dotPos[6]} -composite
echo 5: $DIGIT3 -geometry ${digitPos[5]} -composite
echo 6: $DF3 -geometry ${dotPos[5]} -composite
echo 7: $DIGIT4 -geometry ${digitPos[4]} -composite
echo 8: $DF4 -geometry ${dotPos[4]} -composite
echo 9: $DIGIT5 -geometry ${digitPos[3]} -composite
echo 10: $DF5 -geometry ${dotPos[3]} -composite
echo 11: $DIGIT6 -geometry ${digitPos[2]} -composite
echo 12: $DF6 -geometry ${dotPos[2]} -composite
echo 13: $DIGIT7 -geometry ${digitPos[1]} -composite
echo 14: $DF7 -geometry ${dotPos[1]} -composite
echo 15: $fname
exiv2 -g Exif.Image.ImageDescription -P v ./images/ADIXEN@???@.png
--> value=???
exit
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