You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
rgb-led-board/animateDoorbell.go

33 lines
678 B
Go

package main
import (
"bytes"
b64 "encoding/base64"
"image"
"github.com/disintegration/imaging"
"github.com/fogleman/gg"
)
type Doorbell struct {
image image.Image
}
func (a *Animation) animateDoorbell() {
if a.countDown > 0 {
a.ctx.DrawImageAnchored(a.doorbell.image, 0, 0, 0, 0)
a.countDown -= 50
} else {
a.doorbell = Doorbell{}
a.countDown = 5000
a.ctx.Pop()
}
}
func loadImage(imgType string, img string, a *Animation) {
baseImage, _ := b64.StdEncoding.DecodeString(img)
bigImage, _, _ := image.Decode(bytes.NewReader(baseImage))
a.doorbell.image = imaging.Resize(bigImage, 64, 64, imaging.Lanczos)
a.ctx.Push()
a.ctx = gg.NewContext(64, 128)
}