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
#
# 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
# neue Messgeräte-Bilder
#
# Parameter1 = Anzahl der erzeugten Bilddateien
#
# Parameter2 = Anzahl der Einzelziffern
MAIN="ADIXEN" # device name
IMAGE_DIR=./images
MAX_DIGITS=6 # do not edit!
MAX_EDIGITS=3 # 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
......@@ -30,49 +32,46 @@ 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'
emptyCanvas='xc:transparent'
dotFile[0]=$emptyCanvas
dotFile[1]='char-dot.png'
charFile[0]='char-0.png'
charFile[1]='char-1.png'
charFile[2]='char-2.png'
charFile[3]='char-3.png'
charFile[4]='char-4.png'
charFile[5]='char-5.png'
charFile[6]='char-6.png'
charFile[7]='char-7.png'
charFile[8]='char-8.png'
charFile[9]='char-9.png'
charFile[10]='char-A.png'
charFile[11]='char-C.png'
charFile[12]='char-E.png'
charFile[13]='char-F.png'
charFile[14]='char-H.png'
charFile[15]='char-r.png'
charFile[16]='char-minus.png'
charFile[99]=$emptyCanvas
eCharFile[0]='char-e0.png'
eCharFile[1]='char-e1.png'
eCharFile[2]='char-e2.png'
eCharFile[3]='char-e3.png'
eCharFile[4]='char-e4.png'
eCharFile[5]='char-e5.png'
eCharFile[6]='char-e6.png'
eCharFile[7]='char-e7.png'
eCharFile[8]='char-e8.png'
eCharFile[9]='char-e9.png'
eCharFile[99]=$emptyCanvas
ePrefixFile[0]='char-eMinus.png'
ePrefixFile[1]='char-ePlus.png'
digitFile[0]='digit-0.png'
digitFile[1]='digit-1.png'
digitFile[2]='digit-2.png'
digitFile[3]='digit-3.png'
digitFile[4]='digit-4.png'
digitFile[5]='digit-5.png'
digitFile[6]='digit-6.png'
digitFile[7]='digit-7.png'
digitFile[8]='digit-8.png'
digitFile[9]='digit-9.png'
digitFile[10]='digit-A.png'
digitFile[11]='digit-C.png'
digitFile[12]='digit-E.png'
digitFile[13]='digit-F.png'
digitFile[14]='digit-H.png'
digitFile[15]='digit-r.png'
digitFile[16]='minus.png'
digitFile[99]=$emptyCanvas
edigitFile[0]='edigit-0.png'
edigitFile[1]='edigit-1.png'
edigitFile[2]='edigit-2.png'
edigitFile[3]='edigit-3.png'
edigitFile[4]='edigit-4.png'
edigitFile[5]='edigit-5.png'
edigitFile[6]='edigit-6.png'
edigitFile[7]='edigit-7.png'
edigitFile[8]='edigit-8.png'
edigitFile[9]='edigit-9.png'
edigitFile[10]='eminus.png'
edigitFile[11]='eplus.png'
edigitFile[99]=$emptyCanvas
NUM2PREFIXCHAR[0]='-'
NUM2PREFIXCHAR[1]='+'
......@@ -94,81 +93,90 @@ NUM2CHAR[13]='F'
NUM2CHAR[14]='H'
NUM2CHAR[15]='r'
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'
dotPos[5]='+199+191'
dotPos[4]='+265+191'
dotPos[3]='+331+191'
dotPos[2]='+398+191'
dotPos[1]='+465+191'
eCharPos[3]='+483+191'
eCharPos[2]='+512+191'
eCharPos[1]='+532+191'
NUM2ECHAR[0]='0'
NUM2ECHAR[1]='1'
NUM2ECHAR[2]='2'
NUM2ECHAR[3]='3'
NUM2ECHAR[4]='4'
NUM2ECHAR[5]='5'
NUM2ECHAR[6]='6'
NUM2ECHAR[7]='7'
NUM2ECHAR[8]='8'
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
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
if [ $i == 6 ]; then
CHAR[$i]=$((RANDOM % 17)) # random char number (0..16, 16=minus)
if (( $i <= $NUMBER_OF_DIGITS )); then
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
CHAR[$i]=$((RANDOM % 16)) # random char number (0..15)
eval DIGIT$i=$emptyCanvas;
eval DOT$i=$emptyCanvas;
fi
if [ $i == $dp ]; then
DOTCHAR[$i]=1 # dot
done
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
DOTCHAR[$i]=0 # empty
eval EDIGIT$i=$emptyCanvas;
fi
EPREFIX=$((RANDOM % 2)) # 0..1 (0=minus, 1=plus)
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
done
value=""
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"
fname="$IMAGE_DIR/$MAIN@$value@.png"
echo -e "$FNb:\t$fname"
convert body.png \
${charFile[ ${CHAR[6]} ]} -geometry ${charPos[6]} -composite \
${dotFile[ ${DOTCHAR[6]} ]} -geometry ${dotPos[6]} -composite \
${charFile[ ${CHAR[5]} ]} -geometry ${charPos[5]} -composite \
${dotFile[ ${DOTCHAR[5]} ]} -geometry ${dotPos[5]} -composite \
${charFile[ ${CHAR[4]} ]} -geometry ${charPos[4]} -composite \
${dotFile[ ${DOTCHAR[4]} ]} -geometry ${dotPos[4]} -composite \
${charFile[ ${CHAR[3]} ]} -geometry ${charPos[3]} -composite \
${dotFile[ ${DOTCHAR[3]} ]} -geometry ${dotPos[3]} -composite \
${charFile[ ${CHAR[2]} ]} -geometry ${charPos[2]} -composite \
${dotFile[ ${DOTCHAR[2]} ]} -geometry ${dotPos[2]} -composite \
${charFile[ ${CHAR[1]} ]} -geometry ${charPos[1]} -composite \
${dotFile[ ${DOTCHAR[1]} ]} -geometry ${dotPos[1]} -composite \
${ePrefixFile[ ${EPREFIX} ]} -geometry ${eCharPos[3]} -composite \
${eCharFile[ ${ECHAR[2]} ]} -geometry ${eCharPos[2]} -composite \
${eCharFile[ ${ECHAR[1]} ]} -geometry ${eCharPos[1]} -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 \
$EDIGIT1 -geometry ${edigitPos[1]} -composite \
$EDIGIT2 -geometry ${edigitPos[2]} -composite \
$EDIGIT3 -geometry ${edigitPos[3]} -composite \
$fname
exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname
......@@ -180,8 +188,12 @@ exit
-----------------------------------------------------------------------
Auslesen der Exif-Daten:
exiv2 -g exiv2 -g Exif.Image.ImageDescription -P v \
./images/adixen@2.C1F20-_8@.png
--> value=2.C1F20-_8
exiv2 -g Exif.Image.ImageDescription -P v ./images/ADIXEN@???@.png
--> value=???
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.
Finish editing this message first!
Please register or to comment