|
|
|
@ -13,10 +13,6 @@ import (
|
|
|
|
"golang.org/x/image/font/basicfont"
|
|
|
|
"golang.org/x/image/font/basicfont"
|
|
|
|
"golang.org/x/image/math/fixed"
|
|
|
|
"golang.org/x/image/math/fixed"
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/fogleman/gg"
|
|
|
|
|
|
|
|
"github.com/golang/freetype/truetype"
|
|
|
|
|
|
|
|
"golang.org/x/image/font/gofont/goregular"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"periph.io/x/conn/v3/spi/spireg"
|
|
|
|
"periph.io/x/conn/v3/spi/spireg"
|
|
|
|
"periph.io/x/devices/v3/ssd1306/image1bit"
|
|
|
|
"periph.io/x/devices/v3/ssd1306/image1bit"
|
|
|
|
"periph.io/x/devices/v3/waveshare2in13v2"
|
|
|
|
"periph.io/x/devices/v3/waveshare2in13v2"
|
|
|
|
@ -87,42 +83,46 @@ func Example_other() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var img image.Image
|
|
|
|
var img image.Image
|
|
|
|
bounds := dev.Bounds()
|
|
|
|
// Note: this code is commented out so periph does not depend on:
|
|
|
|
w := bounds.Dx()
|
|
|
|
// "github.com/fogleman/gg"
|
|
|
|
h := bounds.Dy()
|
|
|
|
// "github.com/golang/freetype/truetype"
|
|
|
|
dc := gg.NewContext(w, h)
|
|
|
|
// "golang.org/x/image/font/gofont/goregular"
|
|
|
|
im, err := gg.LoadPNG("gopher.png")
|
|
|
|
// bounds := dev.Bounds()
|
|
|
|
if err != nil {
|
|
|
|
// w := bounds.Dx()
|
|
|
|
panic(err)
|
|
|
|
// h := bounds.Dy()
|
|
|
|
}
|
|
|
|
// dc := gg.NewContext(w, h)
|
|
|
|
dc.SetRGB(1, 1, 1)
|
|
|
|
// im, err := gg.LoadPNG("gopher.png")
|
|
|
|
dc.Clear()
|
|
|
|
// if err != nil {
|
|
|
|
dc.SetRGB(0, 0, 0)
|
|
|
|
// panic(err)
|
|
|
|
dc.Rotate(gg.Radians(90))
|
|
|
|
// }
|
|
|
|
dc.Translate(0.0, -float64(h/2))
|
|
|
|
// dc.SetRGB(1, 1, 1)
|
|
|
|
font, err := truetype.Parse(goregular.TTF)
|
|
|
|
// dc.Clear()
|
|
|
|
if err != nil {
|
|
|
|
// dc.SetRGB(0, 0, 0)
|
|
|
|
panic(err)
|
|
|
|
// dc.Rotate(gg.Radians(90))
|
|
|
|
}
|
|
|
|
// dc.Translate(0.0, -float64(h/2))
|
|
|
|
face := truetype.NewFace(font, &truetype.Options{
|
|
|
|
// font, err := truetype.Parse(goregular.TTF)
|
|
|
|
Size: 16,
|
|
|
|
// if err != nil {
|
|
|
|
})
|
|
|
|
// panic(err)
|
|
|
|
dc.SetFontFace(face)
|
|
|
|
// }
|
|
|
|
text := "Hello from periph!"
|
|
|
|
// face := truetype.NewFace(font, &truetype.Options{
|
|
|
|
tw, th := dc.MeasureString(text)
|
|
|
|
// Size: 16,
|
|
|
|
dc.DrawImage(im, 120, 30)
|
|
|
|
// })
|
|
|
|
padding := 8.0
|
|
|
|
// dc.SetFontFace(face)
|
|
|
|
dc.DrawRoundedRectangle(padding*2, padding*2, tw+padding*2, th+padding, 10)
|
|
|
|
// text := "Hello from periph!"
|
|
|
|
dc.Stroke()
|
|
|
|
// tw, th := dc.MeasureString(text)
|
|
|
|
dc.DrawString(text, padding*3, padding*2+th)
|
|
|
|
// dc.DrawImage(im, 120, 30)
|
|
|
|
for i := 0; i < 10; i++ {
|
|
|
|
// padding := 8.0
|
|
|
|
dc.DrawCircle(float64(30+(10*i)), 100, 5)
|
|
|
|
// dc.DrawRoundedRectangle(padding*2, padding*2, tw+padding*2, th+padding, 10)
|
|
|
|
}
|
|
|
|
// dc.Stroke()
|
|
|
|
for i := 0; i < 10; i++ {
|
|
|
|
// dc.DrawString(text, padding*3, padding*2+th)
|
|
|
|
dc.DrawRectangle(float64(30+(10*i)), 80, 5, 5)
|
|
|
|
// for i := 0; i < 10; i++ {
|
|
|
|
}
|
|
|
|
// dc.DrawCircle(float64(30+(10*i)), 100, 5)
|
|
|
|
dc.Fill()
|
|
|
|
// }
|
|
|
|
img = dc.Image()
|
|
|
|
// for i := 0; i < 10; i++ {
|
|
|
|
|
|
|
|
// dc.DrawRectangle(float64(30+(10*i)), 80, 5, 5)
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// dc.Fill()
|
|
|
|
|
|
|
|
// img = dc.Image()
|
|
|
|
|
|
|
|
|
|
|
|
if err := dev.Draw(dev.Bounds(), img, image.Point{}); err != nil {
|
|
|
|
if err := dev.Draw(dev.Bounds(), img, image.Point{}); err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
log.Fatal(err)
|
|
|
|
|