25 Cze 2019

HEX na RGB

Teraz coś małego ale jakże przydatnego. Konwersja HEX koloru np. #00a1ff na RGB.

function hexTorgb(fullhex) {
  const hex = fullhex.substring(1,7);
  return {
    R: parseInt(hex.substring(0,2), 16),
    G: parseInt(hex.substring(2,4), 16),
    B: parseInt(hex.substring(4,6), 16)
  }
}

A wywołanie to zwyczajne przekazanie stringa do funkcji.

console.log(hexTorgb('#00a1ff')); 
// => {R: 0, G: 161, B: 255 } w wyniku mamy obiekt

Oczywiście nic nie stoi na przeszkodzie aby modyfikować tą funkcję.

Mały update:

Wersja 6-znakowa #1da1f2 lub 3-trzyznakowa #000 do tego możliwość przekazania opacity:

const hexToRgb = (hex, opacity) => {
  return `rgba(${(hex = hex.replace('#', ''))
    .match(new RegExp(`(.{${hex.length / 3}})`, 'g'))
    .map((el) => parseInt(hex.length % 2 ? el + el : el, 16))
    .concat(opacity / 100 || 1)
    .join(',')})`;
};