Génération alèatoire d'une image pouvant servir de fond d'écran.

Soyez le premier à donner votre avis sur cette source.

Vue 9 471 fois - Téléchargée 398 fois

Description

Exemple de l'image qui va aléatoirement être crée http://generator.zeubu.com/?id=generator_image_fond_ecran

C'est une image donc il faut afficher la page php comme une image en html :
<img src='http://generator.zeubu.com/generator_image/fond_ecran/art_etoile.php' border='0'>

L'image est crée à chaque affichage, mais elle peut être concervée dans le cache du navigateur donc pour éviter ça :
echo "<img src='http://generator.zeubu.com/generator_image/fond_ecran/art_etoile.php?".rand(0,99999)."' border='0'>";

Si on veut un fond transparent : art_etoile.php?transp
Si on veut un fond noir : art_etoile.php?noir
Si on veut un fond noir et flou : art_etoile.php?noir&flou
Si on veut un fond noir et trés flou : art_etoile.php?noir&flouplus
Si on veut un fond transparent et net : art_etoile.php?transp&net

Si les paramètres noir/transp et net/flou ne sont pas précisés, ils seront choisi au hasard (sauf flouplus).

Source / Exemple :


<?php
//
//*****************************************************************************
//*  ______  _____   _   _   _____   _   _        _____   _____       ___  ___*
//* |___  / | ____| | | | | |  _  \ | | | |      /  ___| /  _  \     /   |/   | HTTP://WWW.GENERATOR.ZEUBU.COM
//*    / /  | |__   | | | | | |_| | | | | |      | |     | | | |    / /|   /| |
//*   / /   |  __|  | | | | |  _  { | | | |      | |     | | | |   / / |__/ | |
//*  / /__  | |___  | |_| | | |_| | | |_| |  _   | |___  | |_| |  / /       | |
//* /_____| |_____| \_____/ |_____/ \_____/ |_|  \_____| \_____/ /_/        |_| CREATED BY CLEMENT VIALETTES
//*                                                                            *
//*****************************************************************************
//

Header('Content-type: image/png');

$img = ImageCreate( 200, 200);

$colorbackgr = ImageColorAllocate( $img, 0, 0, 0);

//nombre de cercles
$u1 = Rand( 10, 20);

for( $i=1; $i < $u1; $i++)
{
	//couleurs
	$col1 = Rand( 71, 255);
	$col2 = Rand( 71, 255);
	$col3 = Rand( 71, 255);

	//position des centres x y
	$a1 = Rand( -5, 105);
	$a2 = Rand( -5, 105);

	//largeur et hauteur x y
	$a3 = Rand( 5, 150);
	$a4 = Rand( 5, 150);

	//début du cercle et fin
	$deg1 = Rand( 0, 360);
	$deg2 = Rand( 0, 360);

	//type de cercle
	$a5 = Rand( 0, 1);
	
	if($a5 == 0)
	{
		ImageArc( $img, $a1, $a2, $a3, $a4, $deg1, $deg2, ImageColorAllocate( $img, $col1, $col2, $col3));
		ImageArc( $img, $a1+1, $a2+1, $a3+1, $a4+1, $deg1+1, $deg2-1, ImageColorAllocate( $img, $col1-10, $col2-10, $col3-10));
		ImageArc( $img, $a1-1, $a2-2, $a3-1, $a4-1, $deg1+1, $deg2-1, ImageColorAllocate( $img, $col1-10, $col2-10, $col3-10));
		ImageArc( $img, $a1+2, $a2+2, $a3+2, $a4+2, $deg1+2, $deg2-2, ImageColorAllocate( $img, $col1-20, $col2-20, $col3-20));
		ImageArc( $img, $a1-2, $a2-2, $a3-2, $a4-2, $deg1+2, $deg2-2, ImageColorAllocate( $img, $col1-20, $col2-20, $col3-20));
		ImageArc( $img, $a1+3, $a2+3, $a3+3, $a4+3, $deg1+3, $deg2-3, ImageColorAllocate( $img, $col1-30, $col2-30, $col3-30));
		ImageArc( $img, $a1-3, $a2-3, $a3-3, $a4-3, $deg1+3, $deg2-3, ImageColorAllocate( $img, $col1-30, $col2-30, $col3-30));
		ImageArc( $img, $a1+4, $a2+4, $a3+4, $a4+4, $deg1+4, $deg2-4, ImageColorAllocate( $img, $col1-40, $col2-40, $col3-40));
		ImageArc( $img, $a1-4, $a2-4, $a3-4, $a4-4, $deg1+4, $deg2-4, ImageColorAllocate( $img, $col1-40, $col2-40, $col3-40));
		ImageArc( $img, $a1+5, $a2+5, $a3+5, $a4+5, $deg1+5, $deg2-5, ImageColorAllocate( $img, $col1-50, $col2-50, $col3-50));
		ImageArc( $img, $a1-5, $a2-5, $a3-5, $a4-5, $deg1+5, $deg2-5, ImageColorAllocate( $img, $col1-50, $col2-50, $col3-50));
		ImageArc( $img, $a1+6, $a2+6, $a3+6, $a4+6, $deg1+6, $deg2-6, ImageColorAllocate( $img, $col1-60, $col2-60, $col3-60));
		ImageArc( $img, $a1-6, $a2-6, $a3-6, $a4-6, $deg1+6, $deg2-6, ImageColorAllocate( $img, $col1-60, $col2-60, $col3-60));
		ImageArc( $img, $a1+7, $a2+7, $a3+7, $a4+7, $deg1+7, $deg2-7, ImageColorAllocate( $img, $col1-70, $col2-70, $col3-70));
		ImageArc( $img, $a1-7, $a2-7, $a3-7, $a4-7, $deg1+7, $deg2-7, ImageColorAllocate( $img, $col1-70, $col2-70, $col3-70));
	}
	else
	{
		ImageArc( $img, $a1, $a2, $a3, $a4, $deg1, $deg2, ImageColorAllocate( $img, $col1, $col2, $col3));
		ImageArc( $img, $a1+1*Rand(-1,1), $a2+1*Rand(-1,1), $a3+1*Rand(-1,1), $a4+1*Rand(-1,1), $deg1+1, $deg2-1, ImageColorAllocate( $img, $col1-10, $col2-10, $col3-10));
		ImageArc( $img, $a1-1*Rand(-1,1), $a2-2*Rand(-1,1), $a3-1*Rand(-1,1), $a4-1*Rand(-1,1), $deg1+1, $deg2-1, ImageColorAllocate( $img, $col1-10, $col2-10, $col3-10));
		ImageArc( $img, $a1+2*Rand(-1,1), $a2+2*Rand(-1,1), $a3+2*Rand(-1,1), $a4+2*Rand(-1,1), $deg1+2, $deg2-2, ImageColorAllocate( $img, $col1-20, $col2-20, $col3-20));
		ImageArc( $img, $a1-2*Rand(-1,1), $a2-2*Rand(-1,1), $a3-2*Rand(-1,1), $a4-2*Rand(-1,1), $deg1+2, $deg2-2, ImageColorAllocate( $img, $col1-20, $col2-20, $col3-20));
		ImageArc( $img, $a1+3*Rand(-1,1), $a2+3*Rand(-1,1), $a3+3*Rand(-1,1), $a4+3*Rand(-1,1), $deg1+3, $deg2-3, ImageColorAllocate( $img, $col1-30, $col2-30, $col3-30));
		ImageArc( $img, $a1-3*Rand(-1,1), $a2-3*Rand(-1,1), $a3-3*Rand(-1,1), $a4-3*Rand(-1,1), $deg1+3, $deg2-3, ImageColorAllocate( $img, $col1-30, $col2-30, $col3-30));
		ImageArc( $img, $a1+4*Rand(-1,1), $a2+4*Rand(-1,1), $a3+4*Rand(-1,1), $a4+4*Rand(-1,1), $deg1+4, $deg2-4, ImageColorAllocate( $img, $col1-40, $col2-40, $col3-40));
		ImageArc( $img, $a1-4*Rand(-1,1), $a2-4*Rand(-1,1), $a3-4*Rand(-1,1), $a4-4*Rand(-1,1), $deg1+4, $deg2-4, ImageColorAllocate( $img, $col1-40, $col2-40, $col3-40));
		ImageArc( $img, $a1+5*Rand(-1,1), $a2+5*Rand(-1,1), $a3+5*Rand(-1,1), $a4+5*Rand(-1,1), $deg1+5, $deg2-5, ImageColorAllocate( $img, $col1-50, $col2-50, $col3-50));
		ImageArc( $img, $a1-5*Rand(-1,1), $a2-5*Rand(-1,1), $a3-5*Rand(-1,1), $a4-5*Rand(-1,1), $deg1+5, $deg2-5, ImageColorAllocate( $img, $col1-50, $col2-50, $col3-50));
		ImageArc( $img, $a1+6*Rand(-1,1), $a2+6*Rand(-1,1), $a3+6*Rand(-1,1), $a4+6*Rand(-1,1), $deg1+6, $deg2-6, ImageColorAllocate( $img, $col1-60, $col2-60, $col3-60));
		ImageArc( $img, $a1-6*Rand(-1,1), $a2-6*Rand(-1,1), $a3-6*Rand(-1,1), $a4-6*Rand(-1,1), $deg1+6, $deg2-6, ImageColorAllocate( $img, $col1-60, $col2-60, $col3-60));
		ImageArc( $img, $a1+7*Rand(-1,1), $a2+7*Rand(-1,1), $a3+7*Rand(-1,1), $a4+7*Rand(-1,1), $deg1+7, $deg2-7, ImageColorAllocate( $img, $col1-70, $col2-70, $col3-70));
		ImageArc( $img, $a1-7*Rand(-1,1), $a2-7*Rand(-1,1), $a3-7*Rand(-1,1), $a4-7*Rand(-1,1), $deg1+7, $deg2-7, ImageColorAllocate( $img, $col1-70, $col2-70, $col3-70));
	}
}

//image 100x100 a été crée

//flou ?

if(isset($net)==1);
elseif(isset($flouplus)==1)
{

	$img2 = ImageCreate( 200, 200);
	
	Imagecopy($img2,$img,0,0,0,0,imagesx($img),imagesy($img));

	Imagecopymerge($img,$img2,0,0,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,0,1,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,0,2,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,0,3,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,0,4,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,1,0,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,1,1,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,1,2,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,1,3,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,1,4,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,2,0,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,2,1,0,0,imagesx($img),imagesy($img),50);
	
	Imagecopymerge($img,$img2,2,3,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,2,4,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,3,0,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,3,1,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,3,2,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,3,3,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,3,4,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,4,0,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,4,1,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,4,2,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,4,3,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,4,4,0,0,imagesx($img),imagesy($img),50);
	
	Imagecopymerge($img,$img2,2,2,0,0,imagesx($img),imagesy($img),50);

	ImageDestroy($img2);
}
	
elseif((isset($flou)==1)||(Rand(0,1) == 1))
{

	$img2 = ImageCreate( 200, 200);
	
	Imagecopy($img2,$img,0,0,0,0,imagesx($img),imagesy($img));

	Imagecopymerge($img,$img2,0,0,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,0,1,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,0,2,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,1,0,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,2,0,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,1,2,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,2,1,0,0,imagesx($img),imagesy($img),50);
	Imagecopymerge($img,$img2,2,2,0,0,imagesx($img),imagesy($img),50);

	Imagecopymerge($img,$img2,1,1,0,0,imagesx($img),imagesy($img),50);

	ImageDestroy($img2);
}
	
//symétrie

$x = 0;		$y = 0;

while( $x <= 100)
{
	for( $y=0; $y<=100; $y++)
	{
		//image de droite
		ImageSetPixel( $img, 200-($x), $y, ImageColorAt( $img, $x ,$y));

		//image dessous gauche
		ImageSetPixel( $img, $x, 200-$y, ImageColorAt( $img, $x, $y));

		//image dessous droite
		ImageSetPixel( $img, 200-$x, 200-$y, ImageColorAt( $img, $x, $y));
	}
	$x++;
}

//transparent ?

if(isset($noir)==1);
elseif((isset($transp)==1)||( Rand(0,1) == 1))
	ImageColorTransparent( $img, ImageColorClosest( $img, 0, 0, 0));

// On crée l'image

ImagePng($img);

// On libère l'espace mémoire alloué à l'image

ImageDestroy($img);

?>

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
16
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
6 mai 2008

salut
ok une remarque à laisser :
il faut bannir les count dans les boucles :

ne pas faire ==>
for($j=0;$j<count($tri);$j++)
faire ==>
for($j=0,$count=count($tri);$j<$count;$j++)
Messages postés
30
Date d'inscription
vendredi 26 mars 2004
Statut
Membre
Dernière intervention
10 septembre 2012

Oui merci pour ton idée si tu en as d'autres je suis preneur.
C'est pas mal avec le flou des fois on dirait que ça donne un peu de relief, tien c'est une idée ça !
Messages postés
24
Date d'inscription
vendredi 21 juillet 2006
Statut
Membre
Dernière intervention
26 juillet 2008

D'accord, le flou "dédouble" l'image sur elle même... mais, ça rend moins bien en transparent.
Mais, c'est quand même très beau tout ça !
Messages postés
30
Date d'inscription
vendredi 26 mars 2004
Statut
Membre
Dernière intervention
10 septembre 2012

Oui c'est à jour sur mon site et ça met le flou ou non au hasard,
sinon pour l'imposer afin de voir la différence :
http://generator.zeubu.com/generator_image/fond_ecran/art_etoile.php?net
http://generator.zeubu.com/generator_image/fond_ecran/art_etoile.php?flou

et puisque tu ne vois pas la différence :-)
http://generator.zeubu.com/generator_image/fond_ecran/art_etoile.php?flouplus

Je ne n'avais pas retenu le flou plus je le trouvais un peu ... flou, je vais le mettre ici.
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Manouille: no pb pr moi sous FF, :)

@++

R@f
Afficher les 13 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.