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

Code vereinfacht; mehr Variationen

parent b6ecfebb
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-06
# #
# 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
# #
# Parameter1 = Anzahl der erzeugten Bilddateien # Parameter1 = Anzahl der erzeugten Bilddateien
# #
# Parameter2 = Anzahl der Einzelziffern
MAIN="ADIXEN" # device name MAIN="ADIXEN" # device name
IMAGE_DIR=./images IMAGE_DIR=./images
MAX_DIGITS=6 # do not edit! MAX_DIGITS=6 # do not edit!
MAX_EDIGITS=3 # 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
...@@ -30,49 +32,46 @@ else ...@@ -30,49 +32,46 @@ 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'
emptyCanvas='xc:transparent' emptyCanvas='xc:transparent'
dotFile[0]=$emptyCanvas digitFile[0]='digit-0.png'
dotFile[1]='char-dot.png' digitFile[1]='digit-1.png'
digitFile[2]='digit-2.png'
charFile[0]='char-0.png' digitFile[3]='digit-3.png'
charFile[1]='char-1.png' digitFile[4]='digit-4.png'
charFile[2]='char-2.png' digitFile[5]='digit-5.png'
charFile[3]='char-3.png' digitFile[6]='digit-6.png'
charFile[4]='char-4.png' digitFile[7]='digit-7.png'
charFile[5]='char-5.png' digitFile[8]='digit-8.png'
charFile[6]='char-6.png' digitFile[9]='digit-9.png'
charFile[7]='char-7.png' digitFile[10]='digit-A.png'
charFile[8]='char-8.png' digitFile[11]='digit-C.png'
charFile[9]='char-9.png' digitFile[12]='digit-E.png'
charFile[10]='char-A.png' digitFile[13]='digit-F.png'
charFile[11]='char-C.png' digitFile[14]='digit-H.png'
charFile[12]='char-E.png' digitFile[15]='digit-r.png'
charFile[13]='char-F.png' digitFile[16]='minus.png'
charFile[14]='char-H.png' digitFile[99]=$emptyCanvas
charFile[15]='char-r.png'
charFile[16]='char-minus.png' edigitFile[0]='edigit-0.png'
charFile[99]=$emptyCanvas edigitFile[1]='edigit-1.png'
edigitFile[2]='edigit-2.png'
eCharFile[0]='char-e0.png' edigitFile[3]='edigit-3.png'
eCharFile[1]='char-e1.png' edigitFile[4]='edigit-4.png'
eCharFile[2]='char-e2.png' edigitFile[5]='edigit-5.png'
eCharFile[3]='char-e3.png' edigitFile[6]='edigit-6.png'
eCharFile[4]='char-e4.png' edigitFile[7]='edigit-7.png'
eCharFile[5]='char-e5.png' edigitFile[8]='edigit-8.png'
eCharFile[6]='char-e6.png' edigitFile[9]='edigit-9.png'
eCharFile[7]='char-e7.png' edigitFile[10]='eminus.png'
eCharFile[8]='char-e8.png' edigitFile[11]='eplus.png'
eCharFile[9]='char-e9.png' edigitFile[99]=$emptyCanvas
eCharFile[99]=$emptyCanvas
ePrefixFile[0]='char-eMinus.png'
ePrefixFile[1]='char-ePlus.png'
NUM2PREFIXCHAR[0]='-' NUM2PREFIXCHAR[0]='-'
NUM2PREFIXCHAR[1]='+' NUM2PREFIXCHAR[1]='+'
...@@ -94,81 +93,90 @@ NUM2CHAR[13]='F' ...@@ -94,81 +93,90 @@ NUM2CHAR[13]='F'
NUM2CHAR[14]='H' NUM2CHAR[14]='H'
NUM2CHAR[15]='r' NUM2CHAR[15]='r'
NUM2CHAR[16]='-' NUM2CHAR[16]='-'
NUM2CHAR[99]='_'
NUM2DOTCHAR[0]=''
NUM2DOTCHAR[1]='.'
charPos[6]='+80+192'
charPos[5]='+148+192'
charPos[4]='+215+192'
charPos[3]='+282+192'
charPos[2]='+348+192'
charPos[1]='+417+192'
dotPos[6]='+133+191' NUM2ECHAR[0]='0'
dotPos[5]='+199+191' NUM2ECHAR[1]='1'
dotPos[4]='+265+191' NUM2ECHAR[2]='2'
dotPos[3]='+331+191' NUM2ECHAR[3]='3'
dotPos[2]='+398+191' NUM2ECHAR[4]='4'
dotPos[1]='+465+191' NUM2ECHAR[5]='5'
NUM2ECHAR[6]='6'
eCharPos[3]='+483+191' NUM2ECHAR[7]='7'
eCharPos[2]='+512+191' NUM2ECHAR[8]='8'
eCharPos[1]='+532+191' NUM2ECHAR[9]='9'
NUM2ECHAR[10]='-'
NUM2ECHAR[11]='+'
NUM2ECHAR[99]=''
digitPos[1]='+80+192'
digitPos[2]='+148+192'
digitPos[3]='+215+192'
digitPos[4]='+282+192'
digitPos[5]='+348+192'
digitPos[6]='+417+192'
dotPos[1]='+133+191'
dotPos[2]='+199+191'
dotPos[3]='+265+191'
dotPos[4]='+331+191'
dotPos[5]='+398+191'
dotPos[6]='+465+191'
edigitPos[1]='+483+191'
edigitPos[2]='+516+191'
edigitPos[3]='+550+191'
for ((FNb=1; FNb<=MAX_FILES; FNb++)); do for ((FNb=1; FNb<=MAX_FILES; FNb++)); do
dp=$((RANDOM % $MAX_DIGITS + 1)) # the place of the dot (1..6) value=""
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
if [ $i == 6 ]; then if (( $i <= $NUMBER_OF_DIGITS )); then
CHAR[$i]=$((RANDOM % 17)) # random char number (0..16, 16=minus) R=$((RANDOM % 17)) # random digit number (0..16)
eval DIGIT$i=${digitFile[R]}
value+="${NUM2CHAR[R]}"
if [ $DPR == $i ]; then
eval DOT$i="$dotFile"
value+="."
else
eval DOT$i=$emptyCanvas;
fi
else else
CHAR[$i]=$((RANDOM % 16)) # random char number (0..15) eval DIGIT$i=$emptyCanvas;
eval DOT$i=$emptyCanvas;
fi fi
if [ $i == $dp ]; then done
DOTCHAR[$i]=1 # dot
for (( i=1; i<=$MAX_EDIGITS; i++ )); do
if $SHOW_EXP; then
R=$((RANDOM % 12)) # random digit number (0..11)
eval EDIGIT$i=${edigitFile[R]}
value+="${NUM2ECHAR[R]}"
else else
DOTCHAR[$i]=0 # empty eval EDIGIT$i=$emptyCanvas;
fi fi
EPREFIX=$((RANDOM % 2)) # 0..1 (0=minus, 1=plus) done
ECHAR[2]=$((RANDOM % 2)) # random char number (1 or 99, 99="_")
if [ ${ECHAR[2]} == 0 ]; then ECHAR[2]=99; fi
ECHAR[1]=$((RANDOM % 10)) # random char number (0..9)
done
value="" fname="$IMAGE_DIR/$MAIN@$value@.png"
value+="${NUM2CHAR[${CHAR[6]} ]}${NUM2DOTCHAR[ ${DOTCHAR[6]}]}"
value+="${NUM2CHAR[${CHAR[5]}]}${NUM2DOTCHAR[${DOTCHAR[5]}]}"
value+="${NUM2CHAR[${CHAR[4]}]}${NUM2DOTCHAR[${DOTCHAR[4]}]}"
value+="${NUM2CHAR[${CHAR[3]}]}${NUM2DOTCHAR[${DOTCHAR[3]}]}"
value+="${NUM2CHAR[${CHAR[2]}]}${NUM2DOTCHAR[${DOTCHAR[2]}]}"
value+="${NUM2CHAR[${CHAR[1]}]}${NUM2DOTCHAR[${DOTCHAR[1]}]}"
value+="${NUM2PREFIXCHAR[${EPREFIX}]}"
value+="${NUM2CHAR[${ECHAR[2]}]}"
value+="${NUM2CHAR[${ECHAR[1]}]}"
fname="$IMAGE_DIR/$MAIN@$value@.png"
echo -e "$FNb:\t$fname" echo -e "$FNb:\t$fname"
convert body.png \ convert body.png \
${charFile[ ${CHAR[6]} ]} -geometry ${charPos[6]} -composite \ $DIGIT1 -geometry ${digitPos[1]} -composite \
${dotFile[ ${DOTCHAR[6]} ]} -geometry ${dotPos[6]} -composite \ $DOT1 -geometry ${dotPos[1]} -composite \
${charFile[ ${CHAR[5]} ]} -geometry ${charPos[5]} -composite \ $DIGIT2 -geometry ${digitPos[2]} -composite \
${dotFile[ ${DOTCHAR[5]} ]} -geometry ${dotPos[5]} -composite \ $DOT2 -geometry ${dotPos[2]} -composite \
${charFile[ ${CHAR[4]} ]} -geometry ${charPos[4]} -composite \ $DIGIT3 -geometry ${digitPos[3]} -composite \
${dotFile[ ${DOTCHAR[4]} ]} -geometry ${dotPos[4]} -composite \ $DOT3 -geometry ${dotPos[3]} -composite \
${charFile[ ${CHAR[3]} ]} -geometry ${charPos[3]} -composite \ $DIGIT4 -geometry ${digitPos[4]} -composite \
${dotFile[ ${DOTCHAR[3]} ]} -geometry ${dotPos[3]} -composite \ $DOT4 -geometry ${dotPos[4]} -composite \
${charFile[ ${CHAR[2]} ]} -geometry ${charPos[2]} -composite \ $DIGIT5 -geometry ${digitPos[5]} -composite \
${dotFile[ ${DOTCHAR[2]} ]} -geometry ${dotPos[2]} -composite \ $DOT5 -geometry ${dotPos[5]} -composite \
${charFile[ ${CHAR[1]} ]} -geometry ${charPos[1]} -composite \ $DIGIT6 -geometry ${digitPos[6]} -composite \
${dotFile[ ${DOTCHAR[1]} ]} -geometry ${dotPos[1]} -composite \ $DOT6 -geometry ${dotPos[6]} -composite \
${ePrefixFile[ ${EPREFIX} ]} -geometry ${eCharPos[3]} -composite \ $EDIGIT1 -geometry ${edigitPos[1]} -composite \
${eCharFile[ ${ECHAR[2]} ]} -geometry ${eCharPos[2]} -composite \ $EDIGIT2 -geometry ${edigitPos[2]} -composite \
${eCharFile[ ${ECHAR[1]} ]} -geometry ${eCharPos[1]} -composite \ $EDIGIT3 -geometry ${edigitPos[3]} -composite \
$fname $fname
exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname
...@@ -180,8 +188,12 @@ exit ...@@ -180,8 +188,12 @@ exit
----------------------------------------------------------------------- -----------------------------------------------------------------------
Auslesen der Exif-Daten: Auslesen der Exif-Daten:
exiv2 -g exiv2 -g Exif.Image.ImageDescription -P v \ exiv2 -g Exif.Image.ImageDescription -P v ./images/ADIXEN@???@.png
./images/adixen@2.C1F20-_8@.png --> value=???
--> value=2.C1F20-_8
echo 1:$DIGIT1:$DOT1
echo 2:$DIGIT2:$DOT2
echo 3:$DIGIT3:$DOT3
echo 4:$DIGIT4:$DOT4
echo 5:$DIGIT5:$DOT5
echo 6:$DIGIT6:$DOT6
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment