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

Code vereinfacht; mehr Variationen; "plus" korrigiert

parent 2916b810
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-07
# #
# 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
...@@ -15,12 +15,12 @@ MAX_DIGITS=6 # do not edit! ...@@ -15,12 +15,12 @@ MAX_DIGITS=6 # 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
...@@ -31,14 +31,14 @@ else ...@@ -31,14 +31,14 @@ 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' dotFile='dot.png'
_plusFile='plus.png' plusFile='plus.png'
_minusFile='minus.png' minusFile='minus.png'
emptyCanvas='xc:transparent' emptyCanvas='xc:transparent'
digitFile[0]='digit-0.png' digitFile[0]='digit-0.png'
...@@ -51,8 +51,21 @@ digitFile[6]='digit-6.png' ...@@ -51,8 +51,21 @@ digitFile[6]='digit-6.png'
digitFile[7]='digit-7.png' digitFile[7]='digit-7.png'
digitFile[8]='digit-8.png' digitFile[8]='digit-8.png'
digitFile[9]='digit-9.png' digitFile[9]='digit-9.png'
digitFile[98]=$emptyCanvas digitFile[10]='minus.png'
digitFile[99]=$emptyCanvas digitFile[11]='plus.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]='-'
NUM2CHAR[11]='+'
digitPos[1]='+133+151' digitPos[1]='+133+151'
digitPos[2]='+193+151' digitPos[2]='+193+151'
...@@ -68,102 +81,56 @@ dotPos[4]=${digitPos[4]} ...@@ -68,102 +81,56 @@ dotPos[4]=${digitPos[4]}
dotPos[5]=${digitPos[5]} dotPos[5]=${digitPos[5]}
dotPos[6]=${digitPos[6]} dotPos[6]=${digitPos[6]}
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[98]=''
NUM2CHAR[99]='_'
for ((FNb=1; FNb<=MAX_FILES; FNb++)); do for ((FNb=1; FNb<=MAX_FILES; FNb++)); do
SIGN=$((RANDOM % 2)) # random (0|1=+|-) value=""
if [ $SIGN == 0 ]; then DPR=$((RANDOM % $NUMBER_OF_DIGITS + 1)) # random dot position (1..$NUMBER_OF_DIGITS)
signFile=$_plusFile # sign file
signChar='+' # sign character
else
signFile=$_minusFile
signChar='-'
fi
DPR=$((RANDOM % 6 + 1)) # random dot position (1..6)
for (( i=1; i<=$MAX_DIGITS; i++ )); do for (( i=1; i<=$MAX_DIGITS; i++ )); do
if [ $i == 1 ]; then # position 1: "1" or nothing if (( $i <= $NUMBER_OF_DIGITS )); then
if [ $((RANDOM % 2)) == 0 ]; then R=$((RANDOM % 12)) # random digit number (0..11='0'..'+')
if [ $DPR == 1 ]; then eval DIGIT$i=${digitFile[R]}
DNR[1]=98 # no space value+="${NUM2CHAR[R]}"
else if [ $DPR == $i ]; then
DNR[1]=99 # space eval DOT$i="$dotFile"
fi value+="."
else else
DNR[1]=1 eval DOT$i=$emptyCanvas;
fi fi
# random digit number (99|1)
else
DNR[$i]=$((RANDOM % 10)) # random digit number (0..9)
fi
if [ $DPR == $i ]; then
dotFile[$i]="$_dotFile"
dotChar[$i]="." # dot character
else
dotFile[$i]=$emptyCanvas
dotChar[$i]=""
fi
done
value="${signChar}${DNR6}${dotChar[6]}${DNR[5]}${dotChar[5]}${DNR[4]}${dotChar[4]}"
value+="${DNR[3]}${dotChar[3]}${DNR[2]}${dotChar[2]}${DNR[1]}${dotChar[1]}"
value="${signChar}"
for (( i=1; i<=$MAX_DIGITS; i++ )); do
if (( $i <= $NUMBER_OF_DIGITS )); then
eval DIGIT$i=${digitFile[ ${DNR[i]} ]}
eval DF$i=${dotFile[i]}
value+="${NUM2CHAR[${DNR[i]}]}${dotChar[i]}"
else else
eval DIGIT$i=$emptyCanvas; eval DIGIT$i=$emptyCanvas;
eval DF$i=$emptyCanvas; eval DOT$i=$emptyCanvas;
fi fi
done done
fname="$IMAGE_DIR/$MAIN@$value@.png" fname="$IMAGE_DIR/$MAIN@$value@.png"
echo -e "$FNb:\t$fname"
convert body.png \ convert body.png \
$signFile -geometry ${digitPos[1]} -composite \ $DIGIT1 -geometry ${digitPos[1]} -composite \
$DIGIT1 -geometry ${digitPos[1]} -composite \ $DOT1 -geometry ${dotPos[1]} -composite \
$DF1 -geometry ${dotPos[1]} -composite \ $DIGIT2 -geometry ${digitPos[2]} -composite \
$DIGIT2 -geometry ${digitPos[2]} -composite \ $DOT2 -geometry ${dotPos[2]} -composite \
$DF2 -geometry ${dotPos[2]} -composite \ $DIGIT3 -geometry ${digitPos[3]} -composite \
$DIGIT3 -geometry ${digitPos[3]} -composite \ $DOT3 -geometry ${dotPos[3]} -composite \
$DF3 -geometry ${dotPos[3]} -composite \ $DIGIT4 -geometry ${digitPos[4]} -composite \
$DIGIT4 -geometry ${digitPos[4]} -composite \ $DOT4 -geometry ${dotPos[4]} -composite \
$DF4 -geometry ${dotPos[4]} -composite \ $DIGIT5 -geometry ${digitPos[5]} -composite \
$DIGIT5 -geometry ${digitPos[5]} -composite \ $DOT5 -geometry ${dotPos[5]} -composite \
$DF5 -geometry ${dotPos[5]} -composite \ $DIGIT6 -geometry ${digitPos[6]} -composite \
$DIGIT6 -geometry ${digitPos[6]} -composite \ $DOT6 -geometry ${dotPos[6]} -composite \
$DF6 -geometry ${dotPos[6]} -composite \
$fname $fname
exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname
echo -e "$FNb:\t$fname"
done # MAX_FILES done # MAX_FILES
exit exit
----------------------------------------------------------------------- -----------------------------------------------------------------------
Auslesen der Exif-Daten: Auslesen der Exif-Daten:
exiv2 -g Exif.Image.ImageDescription -P v ./images/151.108@GERAET_X.png exiv2 -g Exif.Image.ImageDescription -P v ./images/ADIXEN@???@.png
--> value=151.108 --> value=???
MKS-270/plus.png

3.93 KiB | W: | H:

MKS-270/plus.png

3.94 KiB | W: | H:

MKS-270/plus.png
MKS-270/plus.png
MKS-270/plus.png
MKS-270/plus.png
  • 2-up
  • Swipe
  • Onion skin
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