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.

Source Distribution

customidenticon-0.1.5.tar.gz (3.9 kB view hashes)

Uploaded source

Built Distribution

customidenticon-0.1.5-py3-none-any.whl (4.7 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page