Letter avatar generation for Go.
Generate a 100x100px 'A'-letter avatar:
img, err := letteravatar.Draw(100, 'A', nil)
The third parameter options *Options
can be used for customization:
type Options struct {
Font *truetype.Font
Palette []color.Color
LetterColor color.Color
PaletteKey string
}
Using a custom palette:
img, err := letteravatar.Draw(100, 'A', &letteravatar.Options{
Palette: []color.Color{
color.RGBA{255, 0, 0, 255},
color.RGBA{0, 255, 0, 255},
color.RGBA{0, 0, 255, 255},
},
})
https://godoc.org/github.com/disintegration/letteravatar
package main
import (
"image/png"
"log"
"os"
"unicode/utf8"
"github.com/disintegration/letteravatar"
)
var names = []string{
"Alice",
"Bob",
"Carol",
"Dave",
"Eve",
"Frank",
"Gloria",
"Henry",
"Isabella",
"James",
"Жозефина",
"Ярослав",
}
func main() {
for _, name := range names {
firstLetter, _ := utf8.DecodeRuneInString(name)
img, err := letteravatar.Draw(75, firstLetter, nil)
if err != nil {
log.Fatal(err)
}
file, err := os.Create(name + ".png")
if err != nil {
log.Fatal(err)
}
err = png.Encode(file, img)
if err != nil {
log.Fatal(err)
}
}
}
The package "letteravatar" is distributed under the terms of the MIT license.
The Roboto-Medium font is distributed under the terms of the Apache License v2.0.
See LICENSE.