Skip to content

TheTNB/letteravatar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

letteravatar

GoDoc GitHub Workflow Status (with branch)

Letter avatar generation for Go.

Usage

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
	FontSize    int
}

Using a custom palette:

img, err := letteravatar.Draw(100, []rune{'A'}, &letteravatar.Options{
	Palette: []color.Color{
		color.RGBA{255, 0, 0, 255},
		color.RGBA{0, 255, 0, 255},
		color.RGBA{0, 0, 255, 255},
	},
})

Documentation

https://godoc.org/github.com/haozi-team/letteravatar

Examples

package main

import (
	"image/png"
	"log"
	"os"
	"unicode/utf8"

	"github.com/haozi-team/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, []rune{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)
		}
	}
}

License

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.