36 lines
969 B
Bash
36 lines
969 B
Bash
|
#!/bin/bash
|
||
|
echo "Identified $1 with ${width} width and ${height} height."
|
||
|
size=32
|
||
|
convert -rotate 90 -resize 32x32 "$1" 64.png
|
||
|
filename="64.png"
|
||
|
width=$(identify 64.png | cut -d' ' -f 3 | cut -d 'x' -f 1)
|
||
|
width=$(echo 10*${width}-8 | bc)
|
||
|
height=$(identify 64.png | cut -d' ' -f 3 | cut -d 'x' -f 2)
|
||
|
height=$(echo 10*${height}-8 | bc)
|
||
|
curx=0
|
||
|
cury=0
|
||
|
chx=5
|
||
|
chy=7
|
||
|
|
||
|
while true; do
|
||
|
let curx=curx+chx
|
||
|
let cury=cury+chy
|
||
|
if [[ ${curx} -gt ${width} || ${curx} -lt 0 ]]; then
|
||
|
let chx=-1*chx
|
||
|
let curx=curx+2*chx
|
||
|
fi
|
||
|
if [[ ${cury} -gt ${height} || ${cury} -lt 0 ]]; then
|
||
|
let chy=-1*chy
|
||
|
let cury=cury+2*chy
|
||
|
fi
|
||
|
echo "${curx} ${chx} ${cury} ${chy}"
|
||
|
actx=$(echo ${curx}/10 | bc)
|
||
|
acty=$(echo ${cury}/10 | bc)
|
||
|
pixelstring=$(convert -crop 8x8+${actx}+${acty} "${filename}" rgb:- | xxd -ps | sed 's/\(......\)/#\1/g' | tr '[:lower:]' '[:upper:]' | tr -d '\n')
|
||
|
mosquitto_pub -h raum.ctdo.de -t 'homie/pixelbox/pixel/pixels/set' -m "${pixelstring}"
|
||
|
sleep 0.1
|
||
|
done
|
||
|
|
||
|
|
||
|
|