PHP Identicon Generator
, (*1)
This is a PHP library which generates identicons based on a given string.
Currently only SVG format is supported as it offers the best combination of efficiency, quality, file size and ease of use., (*2)
For integration with a symfony application, there is BitverseIdenticonBundle, (*3)
Installation
Install using composer:, (*4)
$ composer require bitverse/identicon
Usage
The code below, will create a rings-identicon from the string "hello world", and save it to helloworld.svg
., (*5)
<?php
use Bitverse\Identicon\Identicon;
use Bitverse\Identicon\Color\Color;
use Bitverse\Identicon\Generator\RingsGenerator;
use Bitverse\Identicon\Preprocessor\MD5Preprocessor;
$generator = new RingsGenerator();
$generator->setBackgroundColor(Color::parseHex('#EEEEEE'));
$identicon = new Identicon(new MD5Preprocessor(), $generator);
$icon = $identicon->getIcon('hello world');
file_put_contents('helloworld.svg', $icon);
Identicon object
Identicon is the main service that's responsible for providing the identicons based on a given string. In order to do that, it's required to pass a preprocessor and a generator into it's constructor., (*6)
You can then call the getIcon()
function to create a new icon., (*7)
Preprocessor
A preprocessor is an object that implements Bitverse\Identicon\Preprocessor\PreprocessorInterface
., (*8)
The role of the preprocessor is to conduct any action on the string before it's passed to the generate()
method of the generator. This includes hashing., (*9)
Currently, the library only includes MD5Preprocessor
, which hashes the given string using MD5 algorithm., (*10)
Generator
Generator is responsible for actually generating the icon from the hash produced by the preprocessor., (*11)
Any object can be a generator as long as it implements Bitverse\Identicon\Generator\GeneratorInterface
., (*12)
Currently the library provides two generators by default:, (*13)
-
RingsGenerator
produces identicons made out of a centerpiece and three rings of different lengths and rotation., (*14)
-
PixelsGenerator
generates 5x5 pixels icons, similar to the ones used on github., (*15)
Examples
Here are some examples for 'helloworld':, (*16)
-
MD5Preprocessor
+ RingsGenerator
:
, (*17)
-
MD5Preprocessor
+ PixelsGenerator
:
, (*18)