-
Rolf Niepraschk authoredRolf Niepraschk authored
createImages 2.85 KiB
#!/bin/bash
#
# Rolf Niepraschk <Rolf.Niepraschk@ptb.de>, 2017-06-28
#
# Erzeugt aus einem leeren Messgeräte-Bild und neun 7-Segment-Bildern
# neue Messgeräte-Bilder
#
# Parameter 1 = Anzahl der erzeugten Bilddateien
#
# Parameter 2 = Anzahl der Einzelzeichen
MAIN="PFEIFFER_DualGauge" # device name
IMAGE_DIR=./images
MAX_DIGITS=6 # do not edit!
MAX_FILES=10 # do not edit!
NUMBER_OF_DIGITS=$MAX_DIGITS
SHOW_EXP=true
if [ -n "$1" ]; then
MAX_FILES=$1
if [ -n "$2" ]; then
NUMBER_OF_DIGITS=$2
fi
fi
rm -rf "$IMAGE_DIR"
mkdir -p "$IMAGE_DIR"
emptyCanvas='xc:transparent'
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-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]='-'
charPos[1]='+169+199'
charPos[2]='+198+199'
charPos[3]='+227+199'
charPos[4]='+256+199'
charPos[5]='+285+199'
charPos[6]='+314+199'
dotPos[1]=${charPos[1]}
dotPos[2]=${charPos[2]}
dotPos[3]=${charPos[3]}
dotPos[4]=${charPos[4]}
dotPos[5]=${charPos[5]}
dotPos[6]=${charPos[6]}
for ((FNb=1; FNb<=MAX_FILES; FNb++)); do
DPR=$((RANDOM % 6 + 1)) # random dot position (1..6)
value=""
for (( i=1; i<=$MAX_DIGITS; i++ )); do
if (( $i <= $NUMBER_OF_DIGITS )); then
R=$((RANDOM % 11)) # random number (0..10='0'..'-')
eval CHAR$i=${charFile[R]}
value+="${NUM2CHAR[R]}"
if (( $DPR == $i )); then
eval DOT$i="char-dot.png"
value+="."
else
eval DOT$i=$emptyCanvas;
fi
else
eval CHAR$i=$emptyCanvas;
eval DOT$i=$emptyCanvas;
fi
done # NUMBER_OF_DIGITS
fname="$IMAGE_DIR/$MAIN@$value@.png"
echo -e "$FNb:\t$fname"
convert body.png \
$CHAR1 -geometry ${charPos[1]} -composite \
$DOT1 -geometry ${dotPos[1]} -composite \
$CHAR2 -geometry ${charPos[2]} -composite \
$DOT2 -geometry ${dotPos[2]} -composite \
$CHAR3 -geometry ${charPos[3]} -composite \
$DOT3 -geometry ${dotPos[3]} -composite \
$CHAR4 -geometry ${charPos[4]} -composite \
$DOT4 -geometry ${dotPos[4]} -composite \
$CHAR5 -geometry ${charPos[5]} -composite \
$DOT5 -geometry ${dotPos[5]} -composite \
$CHAR6 -geometry ${charPos[6]} -composite \
$DOT6 -geometry ${dotPos[6]} -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=???