2008-09-19 4 views
9

Tengo curiosidad por las lindas imágenes caleidoscópicas asociadas a cada usuario de este sitio. ¿Cómo se generan? Las posibilidades son:¿Cómo se genera la imagen de identificación de usuario en SO?

  1. Una lista de imágenes ya está allí en alguna carpeta y se elige al azar.
  2. La imagen se genera cada vez que un usuario se registra.

En cualquier caso, estoy más interesado en qué tipo de algoritmo se utiliza para generar tales imágenes.

+1

Creo que la pregunta se refiere a las imágenes (identicones) utilizadas cuando el usuario no tiene un gravatar. –

Respuesta

12

se llama Identicon. Si ha introducido y el correo electrónico, es a basado en un hash de su dirección de e-mail. Si no ha introducido un e-mail , se basa en su dirección IP.

Jeff posted some .NET code para generar Identidades basadas en IP.

1

IIRC, se genera a partir de una dirección IP.

"IP Hashing" Creo que se llama.

Recuerdo haber leído sobre él en un blog; él hizo el código disponible para descargar. No tengo idea de dónde era, sin embargo. :(

5

Su normalmente genera a partir de un hash de cualquiera de una dirección de nombre de usuario, dirección de correo electrónico o IP.

Stackoverflow utiliza Gravatar para hacer la generación de la imagen.

Por lo que yo sé la idea vino de Don Parks, que escribe sobre la técnica que utiliza.

1

Las imágenes son producidas por Gravatar y los detalles de ellas son outlined here, sin embargo, no revelan cómo lo están haciendo.

0

Creo que las imágenes son una cuadrícula 4 × 4 con la cuadrícula superior 2 × 2 repetida 4 veces en el sentido de las agujas del reloj, cada vez rotada 90 grados, nuevamente en el sentido de las agujas del reloj. Parece que los dos colores se eligen al azar, y cada bloque de 1 × 1 se elige de un conjunto predefinido.

EDITAR: obviamente mi respuesta fue ad hoc. Es bueno saber sobre identicones.

Prueba esto: http://www.docuverse.com/blog/9block?code=(32-bit entero) 8 & size = (16 | 32 | 64)

sustituyendo números apropiados para los elementos entre paréntesis.

0

Apuesto a que cada imagen de mosaico pequeño tiene un conjunto de otras imágenes de mosaico con las que se ve bien. Piense en un gráfico con las fichas como nodos. Escoges un nodo aleatorio para la esquina y llenas sus puntos adyacentes con socios, luego lo rotas y aplicas el mismo patrón cuatro veces. Luego elige un color.

En lugar de un gráfico, también podría ser una matriz cuadrada en la que cada fila representa una imagen, cada columna representa una imagen y los valores de celda son pesos.

Cuestiones relacionadas