/squareicon

JavaScript library for generating abstract images from unique identifiers.

Primary LanguageJavaScript

squareicon

npm version jsDelivr CDN GZIP size Build Status

JavaScript library for generating abstract images from unique identifiers.

sample

Demo

https://mistic100.github.io/squareicon

Installation

$ npm install squareicon

Dependencies

Usage

In browser

<script src="randomcolor/randomColor.js"></script>
<script src="squareicon/browser.js"></script>

<img id="squareicon"></div>

<script>
    squareicon({ id: 'mistic100' }, (err, data) => {
        document.querySelector('img').src = data;
    });

    squareicon({ id: 'mistic100'})
        .then(data => {
            document.querySelector('img').src = data;
        });
</script>

In NodeJS

const fs = require('fs');
const squareicon = require('squareicon');

squareicon({ id: 'mistic100' }, (err, buffer) => {
    fs.writeFileSync('mistic100.png', buffer);
});

squareicon({ id: 'mistic100'})
    .then(data => {
        fs.writeFileSync('mistic100.png', buffer);
    });

Command line

$ squareicon --id mistic100 mistic100.png

Options

Option Default Description
id null input identifier, can be empty for random value
hasher sha11 function used to transform the id into an hexadecimal string
colors 2 number of colors, can only be 1 or 2
pixels 8 number of pixels, between 2 and 16
size 128 desired size2, between pixels and 2048
padding 0 desired padding, between 0 and size / 3
symmetry none type of symmetry, one of none, vertical, horizontal, central
scheme standard colors scheme3, one of raw, standard, light, bright, dark
background transparent background color as a CSS string

1 It uses the crypto module on NodeJS and the SubtleCrypto API on the browser.

2 The final size might be different in order to be pixel perfect

3 raw will directly use the 12 or 24 first bytes of the hash to create colors. Other modes are delegated to randomcolor.

License

This library is available under the MIT license.