Skip to main content

Python3 library for generate a variety of identicons

Project description



Python library for generate a variety of identicons.



  • 3 different types of identicons
  • change the final image size (size of elements, number of elements)
  • change border size
  • change background color
  • change the transparency of elements
  • change the output format (PNG, JPEG, etc.)
  • choice of hashing algorithm (including your own)


pip install customidenticon


End image size = size * block_size + border * 2

import customidenticon
identicon = customidenticon.create(
    "Test data",            # Data
    type="pixels",          # Type of algorithm (pixels, blocks or layers)
    format="png",           # Output format
    salt="",                # salt for more variants
    background="#f0f0f0",   # background color
    block_visibility=140,   # transparency of elements in the image (0-255)
    block_size=30,          # size of elements (px)
    border=25,              # border (px)
    size=5,                 # number of elements
    hash_func=None          # hash function (auto)


import customidenticon
identicon = customidenticon.create("Test data", size=5)
# identicon = b"\x89PNG\r\n\x1a\n\x00\x00\x00..."

# save to file
with open("identicon.png", "wb") as f:

# to image
import io
from PIL import Image
image =

Hash algorithm

Use hashlib for change algorithm

import hashlib
import customidenticon
identicon = customidenticon.create("Test data", hash_func=hashlib.sha3_256)

Example custom hash algorithm

import customidenticon
class MySuperHashAlgorithm:
    def __init__(self, *args):
    def hexdigest(self):
        return "0"*200

identicon = customidenticon.create("Test data", hash_func=MySuperHashAlgorithm)


import customidenticon
# Create github-like (5x5)
identicon1 = customidenticon.create("Test") # 200x200px (default for all)
# or
identicon1 = customidenticon.create("Test", type="pixels") 

# Create "pixels" type (6x6)
# End image size 200x200px (6 * 25 + 25 * 2)
identicon2 = customidenticon.create("Test", size=6, block_size=25) 

# Create "layers" type (3 layer)
# End image size 200x200px (default size = 3 and block_size = 50)
identicon4 = customidenticon.create("Test", type="layers")

# Create "layers" type (8 layer)
# End image size 200x200px (8 * 20 + 20 * 2)
identicon5 = customidenticon.create("Test", type="layers", size=8, block_size=20, border=20)

# Create "blocks" type (3x3) (200x200px)
identicon6 = customidenticon.create("Test", type="block", block_visibility=100)


Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for customidenticon, version 0.1.5
Filename, size File type Python version Upload date Hashes
Filename, size customidenticon-0.1.5-py3-none-any.whl (4.7 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size customidenticon-0.1.5.tar.gz (3.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page