Как образ пользователя с идентификатором генерируется на SO?

Мне немного любопытно, какие милые маленькие калейдоскопические изображения, связанные с каждым пользователем на этом сайте. Как они генерируются? Возможности:

  1. Список изображений уже есть в некоторой папке, и он выбирается случайным образом.
  2. Изображение генерируется всякий раз, когда пользователь регистрируется.

В любом случае, меня больше интересует, какой алгоритм используется для генерации таких изображений.

6 ответов

Решение

Это называется Identicon. Если вы ввели адрес электронной почты, это основано на хэш-адресе вашего адреса электронной почты. Если вы не указали адрес электронной почты, он зависит от вашего IP-адреса.

Джефф опубликовал некоторый код.NET для создания идентификаторов на основе IP.

Обычно он генерируется из хеша имени пользователя, адреса электронной почты или IP-адреса.

Stackru использует Gravatar для создания изображений.

Насколько я знаю, идея пришла от Дона Паркс, который пишет о технике, которую он использует.

IIRC, он генерируется с IP-адреса.

"IP Hashing", я думаю, это называется.

Я помню, как читал об этом в блоге; он сделал код доступным для скачивания. Однако я понятия не имею, откуда это.:(

Изображения создаются Gravatar и их подробности описаны здесь, однако, они не раскрывают, как они это делают.

Я полагаю, что изображения представляют собой сетку 4×4, верхняя сетка 2×2 повторяется 4 раза по часовой стрелке, каждый раз при повороте на 90 градусов, снова по часовой стрелке. Кажется, что два цвета выбираются случайным образом, и каждый блок 1×1 выбирается из предварительно определенного набора.

РЕДАКТИРОВАТЬ: очевидно, мой ответ был специальным. Приятно знать об идентификаторах.

Попробуйте это: http://www.docuverse.com/blog/9block?code=(32-bit integer) 8 & size = (16 | 32 | 64)

подставляя соответствующие числа для элементов в скобках.

Бьюсь об заклад, каждому крошечному изображению плитки предоставляется набор других изображений плитки, с которыми он выглядит хорошо. Думайте о графике с плитками как узлы. Вы выбираете случайный узел для угла и заполняете его соседние места партнерами, затем поворачиваете его и применяете один и тот же шаблон четыре раза. Затем выберите цвет.

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

Другие вопросы по тегам