Skip to content

Open source avatar generator inspired by GitHub avatars.

License

Notifications You must be signed in to change notification settings

rrivera/identicon

Repository files navigation

IdentIcon

CircleCI Go Report Card

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
rrivera johndoe abc123 modulo
rrivera johndoe abc123 modulo
rrivera johndoe abc123 modulo

7x7

rrivera johndoe abc123 modulo
rrivera johndoe abc123 modulo
rrivera johndoe abc123 modulo
rrivera johndoe abc123 modulo

10x10

rrivera johndoe abc123 modulo
rrivera johndoe abc123 modulo
rrivera johndoe abc123 modulo
rrivera johndoe abc123 modulo

View examples

Documentation

Changelog

Contribution

License

MIT

Copyright (c) 2018-present, Ruben Rivera

About

Open source avatar generator inspired by GitHub avatars.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages