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

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

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

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

Ответы [ 6 ]

12 голосов
/ 19 сентября 2008

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

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

5 голосов
/ 19 сентября 2008

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

Stackoverflow использует Gravatar для генерации изображения.

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

1 голос
/ 19 сентября 2008

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

1 голос
/ 19 сентября 2008

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

"IP-хеширование" Я думаю, это называется.

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

0 голосов
/ 19 сентября 2008

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

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

0 голосов
/ 19 сентября 2008

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

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

Попробуйте это: http://www.docuverse.com/blog/9block?code=(32-bit целое число) 8 & размер = (16 | 32 | 64)

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

...