🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

github.com/nullrocks/identicon

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/nullrocks/identicon

v0.0.0-20240116195454-d5ba35832c0d
99

Supply Chain Security

100

Vulnerability

100

Quality

100

Maintenance

100

License

Version published
Created

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

rriverajohndoeabc123modulo
rriverajohndoeabc123modulo
rriverajohndoeabc123modulo
rriverajohndoeabc123modulo

7x7

rriverajohndoeabc123modulo
rriverajohndoeabc123modulo
rriverajohndoeabc123modulo
rriverajohndoeabc123modulo

10x10

rriverajohndoeabc123modulo
rriverajohndoeabc123modulo
rriverajohndoeabc123modulo
rriverajohndoeabc123modulo

View examples

Documentation

Changelog

Contribution

License

MIT

Copyright (c) 2018-present, Ruben Rivera

FAQs

Package last updated on 16 Jan 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts