Сегодня наткнулся на интересный кусочек кода, который преобразовывает rgb цвет в hex. Rgb представляет собой массив из трех элементов rgb(red, green, blue). Каждое из трех элементов может иметь значение от 0 до 255. Использовать rgb не всегда удобно, поэтому часто цвет кодируется в шестнадцатеричное число — hex цвет, например — #FFFFFF.
Иногда бывает необходимо автоматически делать перекодирование цвета, в этом и поможет приведенный ниже код.
Код написан на javaScrpit. Я оформил его в функцию, что получилось привожу ниже:
// получение HEX из RGB function getHexColor(color){ color = color.replace(/\s/g,""); var colorRGB = color.match(/^rgb\((\d{1,3}[%]?),(\d{1,3}[%]?),(\d{1,3}[%]?)\)$/i); colorHEX = ''; for (var i=1; i<=3; i++){ colorHEX += Math.round((colorRGB[i][colorRGB[i].length-1]=="%"?2.55:1)*parseInt(colorRGB[i])).toString(16).replace(/^(.)$/,'0$1'); } return "#" + colorHEX; } // пример использования alert(getHexColor('rgb(255, 255, 255)'));