Dicton du 12 Décembre:
À la Saint-Corentin, le plein hiver glace le chemin.

Télécharger

Générateur aléatoire d'avatars polygones

Description

Ce générateur d'avatar crée une image de la taille voulue (configurations) avec des polygones dans chaque coins qui se reflètent.

La couleur des polygones est aléatoire, ainsi que le fond de l'image.


J'ai vue ce genre d'avatar un peu spécial sur un système de commentaire et j'avais envie de créer un générateur de ce style, comme le captcha simple que j'ai proposé dernièrement où je me suis amusé.

Exemples:


Code source (PHP)

<?php
//configurations
$config=array();
$config['aleatoire']=1;//0 ou 1, si 1 vous laissez le script faire plus ou moins de coordonnées et de répétitions de polygones
$config['taillex']=50;//largeur de l'image
$config['tailley']=50;//hauteur de l'image
$config['NbrCoordonnees']=8;//nom de coordonnées aux polygones
$config['repetition']=2;//nombre de fois 4 polygones aléatoires
if($config['aleatoire'] == 1){
$config['NbrCoordonnees']=rand(3,15);//nom de coordonnées aux polygones
$config['repetition']=rand(1,25);//nombre de fois 4 polygones aléatoires
}
//on demande d'afficher se fichier en image
header('Content-type: image/png');
// Création d'une image
$image = imagecreatetruecolor($config['taillex'], $config['tailley']);
$bg = imagecolorallocate($image, rand(0,255), rand(0,255), rand(0,255));
// Remplit l'arrière-plan
imagefilledrectangle($image, 0, 0, $config['taillex'], $config['tailley'], $bg);

for($repete=1;$repete<=$config['repetition'];$repete++){
// Alloue des couleurs aléatoires
$colorpolygone = imagecolorallocate($image, rand(0,255), rand(0,255), rand(0,255));
//definition des coordonnées pour le 1er polygone (qui sera dans le coin en haut à gauche, on mettre ensuite le reflet de celui-ci sur les trois autres coins)
$CoordonneesPolygone['hautgauche']=array();
for($i=1;$i<=$config['NbrCoordonnees'];$i++){
$CoordonneesPolygone['hautgauche'][$i]=array("x"=>rand(0,($config['taillex']/2)),"y"=>rand(0,($config['taillex']/2)));
}
// Définition du tableau de points pour les 4 polygones (reflet du polygone haut gauche)
$polygone['hautgauche'] = array();
$polygone['hautdroite'] = array();
$polygone['basdroite'] = array();
$polygone['basgauche'] = array();
for($i=1;$i<=$config['NbrCoordonnees'];$i++){
//ajout des coordonnées pour le polygone haut gauche
$polygone['hautgauche'][]=$CoordonneesPolygone['hautgauche'][$i]['x'];
$polygone['hautgauche'][]=$CoordonneesPolygone['hautgauche'][$i]['y'];
//ajout des coordonnées pour le polygone haut droite
$polygone['hautdroite'][]=$config['taillex']-$CoordonneesPolygone['hautgauche'][$i]['x'];
$polygone['hautdroite'][]=$CoordonneesPolygone['hautgauche'][$i]['y'];
//ajout des coordonnées pour le polygone bas droite
$polygone['basdroite'][]=$config['taillex']-$CoordonneesPolygone['hautgauche'][$i]['x'];
$polygone['basdroite'][]=$config['tailley']-$CoordonneesPolygone['hautgauche'][$i]['y'];
//ajout des coordonnées pour le polygone bas gauche
$polygone['basgauche'][]=$CoordonneesPolygone['hautgauche'][$i]['x'];
$polygone['basgauche'][]=$config['tailley']-$CoordonneesPolygone['hautgauche'][$i]['y'];
}
// Dessine les polygones
imagefilledpolygon($image, $polygone['hautgauche'], $config['NbrCoordonnees'], $colorpolygone);
imagefilledpolygon($image, $polygone['hautdroite'], $config['NbrCoordonnees'], $colorpolygone);
imagefilledpolygon($image, $polygone['basdroite'], $config['NbrCoordonnees'], $colorpolygone);
imagefilledpolygon($image, $polygone['basgauche'], $config['NbrCoordonnees'], $colorpolygone);
}
imagepng($image);//on affiche l'image
imagedestroy($image);//on libère la mémoire
?>

Commentaires

Pas encore de commentaire ajouté, soyez le premier!

Ajouter un commentaire

Pseudo/Nom *
Email *
Message *
La balise [code]Votre code...[/code] peut être utilisée

Captcha * 1 + = sept

Les champs marqués d'un * sont obligatoires.

Retour à la liste des scripts

Flag Counter