Создать шестнадцатеричный цвет на основе строки с JavaScript

Я хочу создайте функцию, которая будет принимать любую старую строку (обычно это одно слово) и из этого каким-то образом генерирует шестнадцатеричное значение между # 000000 и #FFFFFF , поэтому я могу использовать его в качестве цвета для элемента HTML.

Возможно даже сокращенное шестнадцатеричное значение (например: #FFF ), если это менее сложно. Фактически, цвет из «безопасной веб-палитры» был бы идеальным.

124
задан Darragh Enright 26 June 2015 в 17:57
поделиться

1 ответ

Просто перенос через Java из Вычислить шестнадцатеричный цветовой код для произвольной строки в Javascript:

function hashCode(str) { // java String#hashCode
    var hash = 0;
    for (var i = 0; i < str.length; i++) {
       hash = str.charCodeAt(i) + ((hash << 5) - hash);
    }
    return hash;
} 

function intToRGB(i){
    var c = (i & 0x00FFFFFF)
        .toString(16)
        .toUpperCase();

    return "00000".substring(0, 6 - c.length) + c;
}

Чтобы преобразовать, выполните:

intToRGB(hashCode(your_string))
145
ответ дан 24 November 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: