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

34 lines
682 B
Go

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