canvas-sketch-util
Version:
Utilities for sketching in Canvas, WebGL and generative art
20 lines (17 loc) • 716 B
JavaScript
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;
}