Views Comments Previous Next Search

Ссылка дня: превратите фразу на латинице или кириллице в цвет

Канадский программист из Университета Ватерлоо Санжей Варма (Sunjay Varma) написал алгоритм, который превращает любой текст на латинице в цвет из палитры CSS.

Ссылка дня: превратите фразу на латинице или кириллице в цвет. Изображение № 1.

В нём используются HEX-коды и цвета из палитры RGB. Инструмент Вармы основан на аналогичном проекте немецкого программиста Тима Пьетраски (Tim Pietrusky). У последнего он также превращает любой текст на латинице в цвет из CSS, но использует для этого палитру RGBA. Стоит отметить, что цвета в проектах Вармы и Пьетраски по одним и тем же словам отличаются.

Обновление от 22.06, 18:26

Программист Клаус Кёрнер обновил Text to CSS Color так, чтобы он воспринимал кириллицу. Превратить русский текст в цвет можно по ссылке.

Ссылка дня: превратите фразу на латинице или кириллице в цвет. Изображение № 6.

Обновление от 18:26

Создатель Text to CSS Color Санжей Варма пояснил в комментарии Look At Me, как работает его алгоритм превращения слов в цвет и чем он отличается от предыдущего.

 Санжей Варма

Программист из Университета Ватерлоо

«В работе Пьетраски я недоволен тем, что после некоторых изменений в слове ничего не происходило. Поэтому я написал собственную версию.

Вот как она работает. Алгоритм воспринимает ваш текст и, независимо от его длины, разбивает на три секции. Даже если [в слове] нет трёх символов или их количество не делится на 3, алгоритм поделит их лучшим образом, иногда добавив несколько символов в ту или иную секцию.

Цвета в RGB имеют три значения для красного, зелёного и синего. Максимальное значение для каждого — 255. Когда все три равны 255, то это белый цвет. Мой алгоритм устанавливает для всех трёх 255 как начальное значение.

Проходя через каждую секцию, одну за другой, алгоритм по отдельности добавляет символьный код каждого символа (вероятно, их значения в JavaScript. — Прим. ред.) в значения красного, синего и зелёного. Поскольку я использую символьные коды, то могу обработать любой символ. Я также перемножаю символьный код на его номер [в последовательности] и прибавляю ещё один номер, чтобы, набрав “abc”, не получить последовательные значения для цветов RGB.

Я использую арифметический оператор, чтобы убедиться, что значение не превысило 255. Это приводит к трём значениям красного, зелёного и синего, которые потом отображаются как RGB и HEX. <...> Для всего этого потребовалось около 7 строк на JavaScript.

В моей версии также есть довольно классная функция — вы можете отправить ссылку на цвет, который создали. При наборе URL меняется, поэтому вы можете послать его друзьям».

Ссылка дня: превратите фразу на латинице или кириллице в цвет. Изображение № 7.

Пьетраски также подробно расписал действие алгоритма. Во-первых, он автоматически заменяет любой символ, который не может использоваться в HEX-коде, на ноль. Во-вторых, добавляет ноль к строке до тех пор, пока она не станет кратной трём. Потом эту строку разбивает на три части, чтобы получить значения для Red, Green и Blue. В-третьих, сокращает длину всех трёх элементов до двух символов. Их он интерпретирует как числа в 16-ричной системе исчисления.

Ссылка дня: превратите фразу на латинице или кириллице в цвет. Изображение № 12.

Замечание Вармы верно. Если в версии Пьетраски в некоторых словах сделать незначительные изменения (опечатку в один символ), то она не изменит цвет по этому слову. Например, цвета для сочетаний “mark zuterberg” и “mark zukerberg” совпадают. В версии Вармы цвет меняется.

Рассказать друзьям
2 комментарияпожаловаться

Комментарии

Подписаться
Комментарии загружаются