代码之家  ›  专栏  ›  技术社区  ›  nullDev

如何在SO上生成用户ID图像?

  •  9
  • nullDev  · 技术社区  · 16 年前

    我有点好奇这个网站上每个用户的可爱的万花筒图像。 这些是如何生成的?可能性包括:

    1. 某个文件夹中已经存在一个图像列表,它是随机选择的。
    2. 每当用户注册时都会生成图像。

    无论如何,我更感兴趣的是用什么样的算法来生成这样的图像。

    6 回复  |  直到 6 年前
        1
  •  12
  •   Cœur Gustavo Armenta    6 年前

    它叫做 Identicon . 如果您输入并发送电子邮件,它是基于您的电子邮件地址的散列值。如果您没有输入电子邮件,它将基于您的IP地址。

    杰夫 posted some .NET code 生成基于IP的标识。

        2
  •  5
  •   Matt Howells    16 年前

    它通常由用户名、电子邮件地址或IP地址的散列值生成。

    StackOverflow使用 Gravatar 进行图像生成。

    据我所知,这个想法来自 Don Parks 他写了他使用的技术。

        3
  •  1
  •   TraumaPony    16 年前

    IIRC,它是从IP地址生成的。

    “ip hashing”我相信它被称为。

    我记得我在博客上读到过,他让代码可以下载。不过,我不知道它是从哪里来的。:(

        4
  •  1
  •   GateKiller    16 年前

    图像由Gravatar制作,其细节如下: outlined here 然而,他们并没有透露他们是如何做到这一点的。

        5
  •  0
  •   easeout    16 年前

    我敢打赌,每个小瓷砖图像都有一组其他的瓷砖图像,看起来不错。把一个图的图块看作节点。为角点选择一个随机的节点,并用伙伴填充相邻的点,然后旋转它并应用相同的模式四次。然后选择一种颜色。

    它也可以是一个方阵,其中每一行代表一个图像,每一列代表一个图像,单元格值是权重。

        6
  •  0
  •   tzot    16 年前

    我认为图像是一个4_4网格,上面的2_2网格按顺时针方向重复4次,每次旋转90度,再按顺时针方向旋转。似乎这两种颜色是随机选择的,每个1_1块都是从一个预先定义的集合中选择的。

    编辑:很明显我的回答是临时的。很高兴了解Identicons。

    试试这个: http://www.docuverse.com/blog/9block?code=(32-bit integer)8&size=(16 32 64)

    用适当的数字替换带括号的项。