Pergunta

Estou um pouco curioso sobre as imagens caleidoscópicas bonitinho associados a cada usuário neste site. Como são aqueles gerados? As possibilidades são:

  1. A lista de imagens já está lá em alguma pasta e é escolhido aleatoriamente.
  2. A imagem é gerada sempre que um usuário se registra.

Em qualquer caso, eu estou mais interessado em que tipo de algoritmo é usado para gerar tais imagens.

Foi útil?

Solução

É chamado um identicon . Se você entrar e e-mail, é um baseado em um hash de seu endereço de e-mail. Se você não digitar um e-mail, ele é baseado em seu endereço IP.

postou algumas código .NET para gerar identicon baseadas em IP.

Outras dicas

Geralmente é gerada a partir de um hash de um nome de usuário, endereço de e-mail ou endereço IP.

Stackoverflow usa Gravatar para fazer a geração de imagem.

Tanto quanto eu sei que a idéia veio de Don Parques , que escreve sobre a técnica que ele usa.

IIRC, é gerada a partir de um endereço IP.

"IP Hashing" Eu acredito que é chamado.

Eu me lembro de ler sobre ele em um blog; ele fez o código disponível para download. Eu não tenho nenhuma idéia de onde ele era, no entanto. : (

As imagens são produzidas por Gravatar e detalhes deles são delineado aqui , no entanto, eles não revelam como eles estão fazendo isso.

Eu aposto que cada imagem Telha pequena é dado um conjunto de outras imagens azulejo parece bom com. Pense em um gráfico com as telhas como nós. Você escolhe um nó aleatório para o canto e enchê-lo de pontos adjacentes com parceiros, em seguida, girá-lo e aplicar o mesmo padrão quatro vezes. Em seguida, escolher uma cor.

Em vez de um gráfico, que também poderia ser uma matriz quadrada, em que cada linha representa uma imagem, cada coluna representa uma imagem, e os valores das células são pesos.

Eu acredito que as imagens são uma grade 4 × 4 com a grade superior 2 × 2 repetido 4 vezes no sentido horário, apenas cada vez girada em 90 graus, mais uma vez no sentido horário. Parece que as duas cores são escolhidas aleatoriamente, e cada bloco 1 × 1 é escolhido a partir de um conjunto pré-definido.

EDIT: obviamente, a minha resposta foi ad hoc. Para conhecer mais sobre identicon.

Tente isto: http://www.docuverse.com/blog ? / 9block code = ( inteiro de 32-bit) 8 & size = (16 | 32 | 64)

substituindo números apropriados para os itens entre parênteses.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top