Skip to content
Snippets Groups Projects
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=???