Open source avatar generator inspired by GitHub avatars.
IdentIcon
IdentIcon is an open source avatar generator inspired by GitHub avatars.
IdentIcon uses a deterministic algorithm that generates an image (using Golang's stdlib image encoders) based on a text (Generally Usernames, Emails or just random strings), by hashing it and iterating over the bytes of the digest to pick whether to draw a point, pick a color or choose where to go next.
IdentIcon's Generator enables the creation of customized figures: (NxN size, points density, custom color palette) as well as multiple exporting formats in case the developers want to generate their own images.
Installation
$ go get github.com/rrivera/identicon
Usage
import (
"os"
"github.com/rrivera/identicon" )
// New Generator: Rehuse ig, err := identicon.New( "github", // Namespace 5, // Number of blocks (Size) 3, // Density )
if err != nil { panic(err) // Invalid Size or Density }
username := "rrivera" // Text - decides the resulting figure ii, err := ig.Draw(username) // Generate an IdentIcon
if err != nil { panic(err) // Text is empty }
// File writer img, _ := os.Create("icon.png") defer img.Close() // Takes the size in pixels and any io.Writer ii.Png(300, img) // 300px * 300px
Examples
5x5
|rrivera | johndoe | abc123 | modulo | :------------------------------------------------:|:---------------------------------------------:|:-------------------------------------------:|:--------------------------------------------|7x7
|rrivera | johndoe | abc123 | modulo | :------------------------------------------------:|:---------------------------------------------:|:-------------------------------------------:|:---------------------------------------------|10x10
|rrivera | johndoe | abc123 | modulo | :--------------------------------------------------:|:-----------------------------------------------:|:---------------------------------------------:|:----------------------------------------------|Documentation
Changelog
Contribution
License
MITCopyright (c) 2018-present, Ruben Rivera