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

Beginn SRG-2

parent d6dd850f
No related branches found
No related tags found
No related merge requests found
#!/bin/bash
#
# Rolf Niepraschk <Rolf.Niepraschk@ptb.de>, 2016-12-12
#
# Erzeugt aus einem leeren Messgeräte-Bild und neun 7-Segment-Bildern
# neue Messgeräte-Bilder mit zufälliger 6-stelliger Anzeige
#
MAIN="FLUKE-8840A" # device name
IMAGE_DIR=./images
MAX_FILES=10
rm -rf "$IMAGE_DIR"
mkdir -p "$IMAGE_DIR"
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[99]=$emptyCanvas
digitPos[6]='+192+173.65'
digitPos[5]='+226+173.65'
digitPos[4]='+260+173.65'
digitPos[3]='+294+173.65'
digitPos[2]='+328+173.65'
digitPos[1]='+362+173.65'
dotPos[6]='+192+173.65'
dotPos[5]='+226+173.65'
dotPos[4]='+260+173.65'
dotPos[3]='+294+173.65'
dotPos[2]='+328+173.65'
dotPos[1]='+362+173.65'
signPos='+187+173'
for ((FNb=1; FNb<=MAX_FILES; FNb++)); do
DPR=$((RANDOM % 6 + 1)) # random dot position (1..6)
SIGN=$((RANDOM % 2)) # random (0|1=+|-)
if [ $SIGN == 0 ]; then
SF=$plusFile # sign file
SCH='+' # sign character
else
SF=$minusFile
SCH='-'
fi
for i in {1..6}; do
if [ $i == 6 ]; then # position 6: "1" or nothing
DNR[6]=$((RANDOM % 2))
if [ ${DNR[6]} == 0 ]; then
DNR[6]=99
DNR6=""
else
DNR6="1"
fi
# random digit number (99|1)
else
DNR[$i]=$((RANDOM % 10)) # random digit number (0..9)
fi
if [ $DPR == $i ]; then
DF[$i]="$dotFile"
DP[$i]="." # dot character
else
DF[$i]=$emptyCanvas
DP[$i]=""
fi
done
value="${SCH}${DNR6}${DP[6]}${DNR[5]}${DP[5]}${DNR[4]}${DP[4]}"
value+="${DNR[3]}${DP[3]}${DNR[2]}${DP[2]}${DNR[1]}${DP[1]}"
fname="$IMAGE_DIR/$MAIN@$value@.png"
convert body.png \
$SF -geometry $signPos -composite \
${digitFile[ ${DNR[6]} ]} -geometry ${digitPos[6]} -composite \
${DF[6]} -geometry ${dotPos[6]} -composite \
${digitFile[ ${DNR[5]} ]} -geometry ${digitPos[5]} -composite \
${DF[5]} -geometry ${dotPos[5]} -composite \
${digitFile[ ${DNR[4]} ]} -geometry ${digitPos[4]} -composite \
${DF[4]} -geometry ${dotPos[4]} -composite \
${digitFile[ ${DNR[3]} ]} -geometry ${digitPos[3]} -composite \
${DF[3]} -geometry ${dotPos[3]} -composite \
${digitFile[ ${DNR[2]} ]} -geometry ${digitPos[2]} -composite \
${DF[2]} -geometry ${dotPos[2]} -composite \
${digitFile[ ${DNR[1]} ]} -geometry ${digitPos[1]} -composite \
${DF[1]} -geometry ${dotPos[1]} -composite \
$fname
exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname
echo -e "$FNb:\t$fname"
done # MAX_FILES
exit
Test:
SF=$plusFile
fname=yy.png
DNR[6]=1
DNR[5]=7
DNR[4]=3
DNR[3]=0
DNR[2]=5
DNR[1]=6
DF[6]=$dotFile
DF[5]=$emptyCanvas
DF[4]=$emptyCanvas
DF[3]=$emptyCanvas
DF[2]=$emptyCanvas
DF[1]=$emptyCanvas
convert body.png \
$SF -geometry $signPos -composite \
${digitFile[ ${DNR[6]} ]} -geometry ${digitPos[6]} -composite \
${DF[6]} -geometry ${dotPos[6]} -composite \
${digitFile[ ${DNR[5]} ]} -geometry ${digitPos[5]} -composite \
${DF[5]} -geometry ${dotPos[5]} -composite \
${digitFile[ ${DNR[4]} ]} -geometry ${digitPos[4]} -composite \
${DF[4]} -geometry ${dotPos[4]} -composite \
${digitFile[ ${DNR[3]} ]} -geometry ${digitPos[3]} -composite \
${DF[3]} -geometry ${dotPos[3]} -composite \
${digitFile[ ${DNR[2]} ]} -geometry ${digitPos[2]} -composite \
${DF[2]} -geometry ${dotPos[2]} -composite \
${digitFile[ ${DNR[1]} ]} -geometry ${digitPos[1]} -composite \
${DF[1]} -geometry ${dotPos[1]} -composite \
yy.png
-----------------------------------------------------------------------
Auslesen der Exif-Daten:
exiv2 -g Exif.Image.ImageDescription -P v ./images/151.108@GERAET_X.png
--> value=151.108
#!/bin/bash
#
# Rolf Niepraschk <Rolf.Niepraschk@ptb.de>, 2016-12-12
#
# Erzeugt aus allen Messgeräte-Bilder eine Videodatei (Codec X264)
#
MAIN="FLUKE-8840A" # device name
IMAGE_DIR=./images
cat $(find "$IMAGE_DIR" -maxdepth 1 -type f -name "*.png") | \
ffmpeg -y -framerate .5 -i - -c:v libx264 -r 25 -pix_fmt yuv420p \
"$MAIN.mp4" 2>/dev/null
exit
MJEPEG-Video:
ffmpeg -y -framerate 1 -f image2 -pattern_type glob -i 'images/*.png' \
-c:v mjpeg -qscale 1 -r 25 ABC.avi
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