/Identicon

Generate awesome and unique identicons with beautiful colors

Primary LanguagePHPMIT LicenseMIT

Identicon generator for PHP

Build Status

Identicon is a library which generate an identicon image based on a string.

Here is some examples of awesome results!

Identicon example #1   Identicon example #2   Identicon example #3   Identicon example #4   Identicon example #5

Installation

The recommended way to install Identicon is through composer.

Just create a composer.json file for your project:

{
    "require": {
        "yzalis/identicon": "^1.1"
    }
}

And run these two commands to install it:

$ wget http://getcomposer.org/composer.phar
$ php composer.phar install

Now you can add the autoloader, and you will have access to the library:

<?php

require 'vendor/autoload.php';

You're done.

Usage

Images are generated in PNG format with transparent background.

The string can be an email, an IP address, a username, an ID or something else.

Generate an identicon

Create a new Identicon object.

$identicon = new \Identicon\Identicon();

Then you can generate and display an identicon image

$identicon->displayImage('foo');

or generate and get the image data

$imageData = $identicon->getImageData('bar');

or generate and get the base 64 image uri ready for integrate into an HTML img tag.

$imageDataUri = $identicon->getImageDataUri('bar');
<img src="<?php echo $imageDataUri; ?>" alt="bar Identicon" />

Change the size

By default the size will be 64 pixels. If you want to change the image size just add a secondary parameter. 512 x 512px in this example.

$identicon->displayImage('foo', 512);

Color

The color is automatically generated according to the string hash but you can chose to specify a color by adding a third argument.

Color can be an hexadecimal with 6 characters

$identicon->displayImage('bar', 64, 'A87EDF');

or an array with red, green, blue value

$identicon->displayImage('foo', 64, array(200, 100, 150));

That's it!

Generate an identicon on SVG format

The only thing you need to change it this one:

$identicon = new \Identicon\Identicon(new SvgGenerator());
$imageDataUri = $identicon->getImageDataUri('bar');
<img src="<?= $imageDataUri; ?>" alt="bar Identicon" />

Unit Tests

To run unit tests, you'll need and a set of dependencies you can install using Composer:

php composer.phar install

Once installed, just launch the following command:

./vendor/bin/phpunit

Everything should be ok.

Credits

Inspired by Github blog post about Identicon.

License

Identicon is released under the MIT License. See the bundled LICENSE file for details.