29 lines
1.2 KiB
JavaScript
29 lines
1.2 KiB
JavaScript
import { iconGenerator } from "../renderer/iconGenerator";
|
|
import { isValidHash, computeHash } from "../common/hashUtils";
|
|
import { CanvasRenderer } from "../renderer/canvas/canvasRenderer";
|
|
import { IS_RENDERED_PROPERTY } from "../common/dom";
|
|
|
|
/**
|
|
* Draws an identicon to a context.
|
|
* @param {CanvasRenderingContext2D} ctx - Canvas context on which the icon will be drawn at location (0, 0).
|
|
* @param {*} hashOrValue - A hexadecimal hash string or any value that will be hashed by Jdenticon.
|
|
* @param {number} size - Icon size in pixels.
|
|
* @param {Object|number=} config - Optional configuration. If specified, this configuration object overrides any
|
|
* global configuration in its entirety. For backward compatibility a padding value in the range [0.0, 0.5) can be
|
|
* specified in place of a configuration object.
|
|
*/
|
|
export function drawIcon(ctx, hashOrValue, size, config) {
|
|
if (!ctx) {
|
|
throw new Error("No canvas specified.");
|
|
}
|
|
|
|
iconGenerator(new CanvasRenderer(ctx, size),
|
|
isValidHash(hashOrValue) || computeHash(hashOrValue),
|
|
config);
|
|
|
|
const canvas = ctx.canvas;
|
|
if (canvas) {
|
|
canvas[IS_RENDERED_PROPERTY] = true;
|
|
}
|
|
}
|