Créez une image de 500x300 pixels avec une couleur de fond rouge. Écrivez un texte de bienvenue en blanc avec une police PHP.
<?php header ("Content-type: image/png"); $idimg=imagecreate(500,300); $fond=imagecolorallocate($idimg,255,0,0); $blanc=imagecolorallocate($idimg,255,255,255); $texte="Bienvenus chez PHP 5.3"; imagestring($idimg,5,160,140,$texte,$blanc); imagepng($idimg,"bienvenu.png"); imagepng($idimg); imagedestroy($idimg); ?>Voir le résultat
Créez une image de 400x200 pixels avec un fond transparent. Dessinez une suite de rectangles emboîtés de couleurs différentes.
<?php header ("Content-type: image/png"); $idimg=imagecreate(400,200); $fond=imagecolorallocate($idimg,150,160,170); $id=imagecolortransparent($idimg,$fond); //Création d'un tableau des couleurs $tabcolor[]=imagecolorallocate($idimg,255,0,255); $tabcolor[]=imagecolorallocate($idimg,255,255,255); $tabcolor[]=imagecolorallocate($idimg,0,0,255); $tabcolor[]=imagecolorallocate($idimg,0,255,0); $tabcolor[]=imagecolorallocate($idimg,255,0,0); $tabcolor[]=imagecolorallocate($idimg,0,0,0); //Dessin des rectangles for($i=0,$j=0,$k=0;$i<200,$j<100;$i+=40,$j+=20,$k++) { imagerectangle($idimg,200-$i,100-$j,200+$i,100+$j,$tabcolor[$k]); } imagepng($idimg,"rectangle.png"); imagepng($idimg); imagedestroy($idimg); ?>Voir le résultat
Créez une image de 800x600 pixels avec une couleur de fond verte. Tracez un trapèze isocèle rempli de jaune, et écrivez le mot « trapèze » au centre.
<?php header ("Content-type: image/gif"); $idimg=imagecreate(800,600); $vert=imagecolorallocate($idimg,0,255,0); $jaune=imagecolorallocate($idimg,255,255,0); //Dessin des rectangles //Coordonnées du quadrilatère $tab=array (200,150,600,150,700,450,100,450); //Tracé du quadrilatère imagefilledpolygon($idimg,$tab,4,$jaune); $texte="TRAPEZE"; imagestring($idimg,5,360,296,$texte,$vert); imagegif($idimg,"trapeze.gif"); imagegif($idimg); imagedestroy($idimg); ?>Voir le résultat
Créez une image de 601x601 pixels avec un fond transparent. Déterminez le centre O de l’image, et tracez des cercles concentriques centrés en O avec des rayons variant de 30 pixels jusqu’au bord de l’image. Attribuez à chaque cercle une couleur différente.
Comme nous devons tracer vingt cercles, nous créons un tableau de couleurs aléatoires à l’aide d’une boucle (repère 1). Les coordonnées du centre sont obtenues en utilisant les fonctions imagesx() et imagesy() qui fournissent les dimensions de l’image (repères 2 et 3) . Si nous changeons la taille de l’image nous aurons ainsi toujours son centre. Le tracé des cercles est réalisé au moyen d’une boucle double, la variable $i désignant le rayon et la variable $j le numéro de la couleur.
<?php header ("Content-type: image/png"); $idimg=imagecreate(601,601); $fond=imagecolorallocate($idimg,225,5,5); imagecolortransparent($idimg,$fond); $noir=imagecolorallocate($idimg,0,0,0); //Création d'un tableau de 20 couleurs aléatoires for($i=0;$i<20;$i++)//1 { $R= rand(0,255); $V= rand(0,255); $B= rand(0,255); $tabcolor[]=imagecolorallocate($idimg,$R,$V,$B); } //Coordonnées du centre de l image $XO=imagesx($idimg)/2;//2 $YO=imagesy($idimg)/2;//3 //Tracé du centre imageline($idimg,$XO-5,$YO,$XO+5,$YO,$noir); imageline($idimg,$XO,$YO-5,$XO,$YO+5,$noir); //Tracé des cercles for($i=0,$j=0;$i<600,$j<20;$i+=30,$j++) { imageellipse($idimg,$XO,$YO,$i,$i,$tabcolor[$j]); } imagepng($idimg,"cercles.png"); imagepng($idimg); imagedestroy($idimg); ?>Voir le résultat
Créez une image à partir d’un fichier JPEG existant sur votre poste. Écrivez une légende de votre choix, d’abord en noir puis dans une autre couleur, en la décalant de 1 pixel en X et en Y afin de créer un effet d’ombre.
Le texte est affiché avec une police TrueType. Notez que le deuxième (en blanc) affichage recouvre le premier (en noir).
<?php header ("Content-type: image/jpeg"); $idimg=imagecreatefromjpeg("julia.jpg"); $fond=imagecolorallocate($idimg,225,5,5); $blanc=imagecolorallocate($idimg,255,255,255); $noir=imagecolorallocate($idimg,0,0,0); $titre="Julia the star"; imagettftext($idimg,40,0,80,399,$blanc,"Elephnt.ttf",$titre); imagettftext($idimg,40,0,81,400,$noir,"Elephnt.ttf",$titre); imagejpeg($idimg,"romy2.jpg"); imagejpeg($idimg); imagedestroy($idimg); ?>Voir le résultat
Créez une image de 1 024x768 pixels. Tracez la fonction f(x)=x2, avec x compris entre – 50 et + 50, et tracez les axes. Le tracé doit occuper la plus grande surface possible de l’image.
<?php header ("Content-type: image/png"); $idimg=imagecreate(1024,768); $blanc=imagecolorallocate($idimg,255,255,255); $noir=imagecolorallocate($idimg,0,0,0); //Tracé des axes imageline($idimg,0,750,1024,750,$noir); imageline($idimg,512,768,512,0,$noir); //Graduations des abscisses for($x=-500;$x<=500;$x+=50) { $X=512+$x; imageline($idimg,$X,745,$X,755,$noir); $texte=(string) ($x/10); imagestring($idimg,5,$X-10,730,$texte,$noir); } //Graduations des ordonnées for($y=30;$y<=750;$y+=30) { $Y=750-$y; imageline($idimg,507,$Y,517,$Y,$noir); $texte=(string) ($y*10/3); imagestring($idimg,5,470,$Y-10,$texte,$noir); } //Tracé de la courbe point par point for($x=-500;$x<500;$x+=1) { $X=512+$x; $Y=(250000-$x*$x)*0.003; imagesetpixel($idimg,$X,$Y,$noir); //Doublement du trait pour une meilleure visibilité imagesetpixel($idimg,$X,$Y+1,$noir); } //Affichage du titre $titre="Fonction f(x)=x^2"; imagettftext($idimg,15,0,550,400,$noir,"Elephnt.ttf",$titre); imagepng($idimg,"carre.png"); imagepng($idimg); imagedestroy($idimg); ?>Voir le résultat