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

läuft!

parent c6b83a9a
No related branches found
No related tags found
No related merge requests found
#!/bin/bash
#
# Rolf Niepraschk <Rolf.Niepraschk@ptb.de>, 2017-06-26
#
# Erzeugt aus einem leeren Messgeräte-Bild und neun 7-Segment-Bildern
# neue Messgeräte-Bilder
#
# Parameter 1 = Anzahl der erzeugten Bilddateien
#
MAIN="VAC_TM_21" # device name
IMAGE_DIR=./images
MAX_DIGITS=4 # do not edit!
MAX_FILES=10 # do not edit!
NUMBER_OF_DIGITS=$MAX_DIGITS
SHOW_EXP=true
if [ -n "$1" ]; then
MAX_FILES=$1
fi
if (( $NUMBER_OF_DIGITS > $MAX_DIGITS )); then
NUMBER_OF_DIGITS=$MAX_DIGITS
else
if (( $NUMBER_OF_DIGITS < 1 )); then
NUMBER_OF_DIGITS=1
fi
fi
rm -rf "$IMAGE_DIR"
mkdir -p "$IMAGE_DIR"
dotFile='dot.png'
edotFile='edot.png'
emptyCanvas='xc:transparent'
#---------------------
dotFile='dot.png'
plusFile='plus.png'
minusFile='minus.png'
emptyCanvas='xc:transparent'
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[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[99]=$emptyCanvas # empty canvas
digitFile[100]='edigit-0.png'
digitFile[101]='edigit-1.png'
digitFile[102]='edigit-2.png'
digitFile[103]='edigit-3.png'
digitFile[104]='edigit-4.png'
digitFile[105]='edigit-5.png'
digitFile[106]='edigit-6.png'
digitFile[107]='edigit-7.png'
digitFile[108]='edigit-8.png'
digitFile[109]='edigit-9.png'
digitFile[200]='eminus.png'
digitFile[201]='eplus.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[99]=''
NUM2CHAR[100]='0'
NUM2CHAR[101]='1'
NUM2CHAR[102]='2'
NUM2CHAR[103]='3'
NUM2CHAR[104]='4'
NUM2CHAR[105]='5'
NUM2CHAR[106]='6'
NUM2CHAR[107]='7'
NUM2CHAR[108]='8'
NUM2CHAR[109]='9'
NUM2CHAR[200]='-'
NUM2CHAR[201]='+'
digitPos[1]='+209+149'
digitPos[2]='+237+149'
digitPos[3]='+292+149'
digitPos[4]='+321+149'
dotPos[1]=${digitPos[1]}
dotPos[2]=${digitPos[2]}
dotPos[3]=${digitPos[3]}
dotPos[4]=${digitPos[4]}
for ((FNb=1; FNb<=MAX_FILES; FNb++)); do
value=""
DPR=$((RANDOM % ($NUMBER_OF_DIGITS + 1))) # random dot position (0..$NUMBER_OF_DIGITS)
ESIGN=$(($RANDOM % 2 + 200)) # random exponent sign (200..201)
for (( i=1; i<=$MAX_DIGITS; i++ )); do
if (( $i == 3 )); then # exponent sign
value+="${NUM2CHAR[ESIGN]}"
eval DIGIT$i=${digitFile[ESIGN]}
eval DOT$i=$emptyCanvas;
else
if (( $i == 4 )); then # exponent
R=$((RANDOM % 10 + 100)) # random digit number (100..109='0'..'9')
value+="${NUM2CHAR[R]}"
if [ $DPR == $i ]; then
eval DOT$i="$edotFile"
value+="."
else
eval DOT$i=$emptyCanvas;
fi
else # mantissa
R=$((RANDOM % 10)) # random digit number (0..9='0'..'9')
value+="${NUM2CHAR[R]}"
if [ $DPR == $i ]; then
eval DOT$i="$dotFile"
value+="."
else
eval DOT$i=$emptyCanvas;
fi
fi
eval DIGIT$i=${digitFile[R]}
fi
done # NUMBER_OF_DIGITS
fname="$IMAGE_DIR/$MAIN@$value@.png"
echo -e "$FNb:\t$fname"
convert body.png \
$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 \
$fname
exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname
done # MAX_FILES
exit
-----------------------------------------------------------------------
Auslesen der Exif-Daten:
exiv2 -g Exif.Image.ImageDescription -P v ./images/ADIXEN@???@.png
--> 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