ARGENTOP2P

Soporte, Ayuda y Consultas => Tutoriales y Manuales => Mensaje publicado por: Camello_AR en Noviembre 27, 2008, 21:02:32

Título: Cómo crear avatares aleatorios
Publicado por: Camello_AR en Noviembre 27, 2008, 21:02:32
Amigos, como verán, con un sencillo script de mi factoria (que he reciclado para diversos usos) puede mostrarse, cada vez que alguien mira un post nuestro, un avatar diferente (de una cantidad previamente definida)

Elementos necesarios:
a) Una carpeta en un hosting que soporte PHP -con 200/300kb de espacio en disco es suficiente-
b) Imágenes en formato JPG que cumplan con las reglas (un máximo de 100*100 px y 20kb), cantidad a gusto

Preparación:
1) Seleccionamos todas las imágenes que usaremos como avatares, se las renombra con la forma 1.jpg -n.jpg (es MUY importante que la extensión .jpg se encuentre en minúculas como explicó luego)
2) Creamos una carpeta en el hosting con el nombre que se quiera (en el ejemplo /avatar/)
3) Subimos las imágenes ya preparadas a esa carpeta
4) Dentro de la misma creamos un archivo con formato PHP que contenga lo siguiente (en este ejemplo el
archivo se llama avatar.php) (lo contenido entre /* */ puede eliminarse) reemplazando la cantidad de imágenes en "$totales = n"

<?php
/*
Selector de imagenes aleatorias hecho por Camello.Ar 2005/2008
Uso:
http://servidor/carpeta/avatar.php

TOTALES: Cantidad de imagenes

Nombre de imagenes:
1.jpg - N.jpg (Numeración correlativa del 1 hasta Totales)

Las imágenes deben ser todas jpg y por cuestiones de compatibilidad en servidores
linux y bsd la extensión deberá ser en minúsculas (.jpg) (NO .JPG por ejemplo)

*/
$totales //Aquí poner el total de imágenes
header("Content-type: image/jpeg");
mt_srand((double)microtime()*1000000);
$ran mt_rand(1,$totales);
$filename $ran.".jpg";
readfile($filename);
?>


5) Ya tenemos el generador listo, lo probamos poniendo la dirección del archvio en el navegar y recargando varias veces para ver que siempre muestre imágenes (pueden repetirse o no, pero deberían ir rotando)
6) Venimos al foro, en la barra de menu superior (fondo azul) ponemos "Editar Perfil", luego en el menu izquierdo seleccionamos "Información del Perfil del foro", marcamos la opción "tengo mi propia imagen" y al costado ponemos la dirección de la imagen. Luego guardamos y debería estar funcionado


Notas:
-La extensión de las imágenes debe estar en minúsculas dado que si el servidor usa linux (la gran mayoría) al ser sensible a mayúsculas/minúsculas produciría un error al cargar las imágenes.
-Al ser un mecanismo sencillo (orientado a la velocidad de funcionamiento y poco código) no tiene control de errores, tal como determinar la existencia de archivos.
- El código podría estar más optimizado, por ejemplo ahicando la cantidad de variables, pero tiene una finalidad de hacer un código reutilizable
- Todas las imágenes debe ser el mismo formato. Si se utilizan en uno que sea diferente a JPG (por ejemplo GIF o PNG) debe modificarse la linea que determina la extensión, cómo así la cabecera MIME

Funcionamiento técnico:
1) Carga en una variable la cantidad de imagenes disponibles
2) Envía una cabecera HTTP al navegador indicándole el tipo MIME del archivo
3) Inicia el generador de números aleátorios
4) Genera un número entero, al azar, entre 1 y la totalidad de imágenes
5) Carga en una variable el nombre de la imagen elegida, componiéndola entre el numero resultante y la extensión ".jpg"
6) Lee el archivo seleccionado y lo envía directamente al navegador

Saludos.
Título: Re: Cómo crear avatares aleatorios
Publicado por: caste_cabj en Noviembre 27, 2008, 21:26:10
Gracias.. me tomo un tiempito y lo pruebo :jaja:

Salute :up:
Título: Re: Cómo crear avatares aleatorios
Publicado por: Niko en Diciembre 05, 2008, 13:07:34
Gracias camello!
Título: Re: Cómo crear avatares aleatorios
Publicado por: KameL en Diciembre 05, 2008, 15:51:57
Gracias Tocayo... Yo en otro foro tenía un sistema parecido, pero con variables de texto sobre fondos que iban cambiando. Es decir, yo hice varios fondos (eran del Counter-Strike) y un amigo me ayudó haciéndome un script en el cual además de cargar aleatoriamente las imagenes, les agregaba un texto aleatorio encima, con diferentes formatos (fuente, tamaño, color, etc.). Lamentablemente, perdí ese script y nunca mas volví a ver a mi amigo.
Título: Re: Cómo crear avatares aleatorios
Publicado por: Camello_AR en Diciembre 05, 2008, 17:01:53
Cita de: KameL en Diciembre 05, 2008, 15:51:57
Gracias Tocayo... Yo en otro foro tenía un sistema parecido, pero con variables de texto sobre fondos que iban cambiando. Es decir, yo hice varios fondos (eran del Counter-Strike) y un amigo me ayudó haciéndome un script en el cual además de cargar aleatoriamente las imagenes, les agregaba un texto aleatorio encima, con diferentes formatos (fuente, tamaño, color, etc.). Lamentablemente, perdí ese script y nunca mas volví a ver a mi amigo.

Para eso se utiliza la librería GD (si mal no recuerdo) yo tenía unos scripts similares  (sin aleatorio, pero es cuestión de combinarlos) para hacer una botonera para temas de sitios web. pero depende que el hosting tenga habilitadas las librerías


<?php
Header
("Content-type: image/jpeg");
$string $HTTP_GET_VARS[texto];
$imagen $HTTP_GET_VARS[tema];
$imagen "boton-$imagen.jpg";
$im imagecreatefromjpeg($imagen);
$negro ImageColorAllocate($im000);
$px = (imagesx($im)-6.5*strlen($string))/2;
ImageString($im,3,$px,9,$string,$negro);
ImageJpeg($im);
ImageDestroy($im);
?>



Eso es en resumidas cuentas lo que tengo yo

funciona en la forma
/botonera.php?tema=TEMA&texto=MENSAJE (por ejemplo /botonera.php?tema=boton-rojo&texto=Boton%20de%20muestra)

Pero las entradas string e imagen se pueden generar con la rutina anterior al azar

en mi caso lo que hacia era leer un archivo con el fondo (mis archivos eran boton-rojo.jpg, boton-azul.jpg, etc) y sobreimprimir el texto pasado como cadena. Es una prueba conceptual sobre personalización de páginas (o sea no se utilizó en ningún sitio de producción)
Título: Re: Cómo crear avatares aleatorios
Publicado por: KameL en Diciembre 05, 2008, 17:17:18
Hmmm... creo que estamos hablando de cosas diferentes...
A ver si me explico mejor:
Yo tenía 4 o 5 imagenes de firmas, sin texto y 4 o 5 frases.
El script lo que hacia era combinar los diferentes fondos con las diferentes frases, de forma aleatoria, quedando por ejemplo el fondo 1 con la frase 3, el fondo 1 con la frase 5, el fondo 2 con la frase 3, etc... Ojala recupere ese script que me gustaba mucho.
Título: Re: Cómo crear avatares aleatorios
Publicado por: Ronon en Diciembre 05, 2008, 19:56:49
A mí me tira este error cuando lo pruebo, vale aclarar que uso el host gratuito de iespana que siempre te muestra su publicidad arriba... seguro ese sea el problema no?
Si el problema es el host ni en pedo hay uno que podamos usar no? :P

CitarParse error: syntax error, unexpected T_STRING in ***dirección***/avatar/avatar.php on line 3

Código usado

<?php
$totales 
8
header
("Content-type: image/jpeg");
mt_srand((double)microtime()*1000000);
$ran mt_rand(1,$totales);
$filename $ran.".jpg";
readfile($filename);
?>


Captura de las imágenes usadas

http://img210.imageshack.us/img210/3185/capturadeavatareswe1.jpg
Título: Re: Cómo crear avatares aleatorios
Publicado por: Camello_AR en Diciembre 05, 2008, 20:46:10
el tema que no cerras la linea despues de totales con ;


NO:
$totales = 8
SI:
$totales = 8;
Título: Re: Cómo crear avatares aleatorios
Publicado por: Ronon en Diciembre 05, 2008, 21:02:09
Aaaah pero qué boludo importante :-[ jajajaja

Ahí funcionó, muchas gracias capo :up:
Título: Re: Cómo crear avatares aleatorios
Publicado por: Camello_AR en Diciembre 05, 2008, 22:03:42
por nada