UNPKG

canvas-sketch-util

Version:

Utilities for sketching in Canvas, WebGL and generative art

20 lines (17 loc) 716 B
module.exports = rgbaToHex; function rgbaToHex (rgba) { if (!rgba || !Array.isArray(rgba)) { throw new TypeError('Must specify an array to convert into a hex code'); } var r = Math.max(0, Math.min(255, Math.round(rgba[0] || 0))); var g = Math.max(0, Math.min(255, Math.round(rgba[1] || 0))); var b = Math.max(0, Math.min(255, Math.round(rgba[2] || 0))); var alpha = rgba[3]; if (typeof alpha === 'undefined' || !isFinite(alpha)) { alpha = 1; } var a = Math.max(0, Math.min(255, Math.round(alpha * 255))); var alphaParam = a === 255 ? '' : (a | 1 << 8).toString(16).slice(1); var result = ((b | g << 8 | r << 16) | 1 << 24).toString(16).slice(1) + alphaParam; return '#' + result; }