I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 1) Bibliothèque GD I- ANALYSE DU BESOIN / Plan La bibliothèque GD permet de créer des images est livrée avec PHP Activer la bibliothèque GD Dans le fichier php.in : supprimer le point virgule devant « ;extension=php_gd2.dll »
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 2) Les bases de la création d'image I- ANALYSE DU BESOIN / Plan Le header On va faire en sorte que notre script « renvoie » une image au lieu d'une page web. Grâce à la fonction header, on va « dire » au navigateur que l'on est en train d'envoyer une image. 2 types d'images les plus courants sur le web : JPEG et PNG <?php header ("Content-type: image/png"); ?> <?php header ("Content-type: image/png"); ?> La fonction header est particulière. Comme setcookie, elle doit être utilisée avant d'avoir écrit le moindre code HTML.
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 2) Les bases de la création d'image I- ANALYSE DU BESOIN / Plan Créer l'image de base À partir d'une image vide on utilise la fonction imagecreate. Elle prend deux paramètres : la largeur et la hauteur. $image est une « ressource ». Une ressource est une variable un peu spéciale qui contient toutes les informations sur un objet. <?php header ("Content-type: image/png"); $image = imagecreate(200,50); ?>
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 2) Les bases de la création d'image I- ANALYSE DU BESOIN / Plan Créer l'image de base Créer une image à partir d'une image JPEG déjà existante on utilise la fonction : imagecreatefromjpeg Créer une image à partir d'une image PNG déjà existante on utilise la fonction : imagecreatefrompng Afficher l'image dans une page web <?php header ("Content-type: image/png"); $image = imagecreatefromjpeg("montagne.jpg"); imagejpeg($image); ?> <img src="image.php" />
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 2) Les bases de la création d'image I- ANALYSE DU BESOIN / Plan Enregistrer l'image sur le disque Ajouter un paramètre à la fonction imagepng : le nom de l'image et éventuellement son dossier. L'image a été enregistrée sur le disque dans le répertoire « images » avec le nom monimage.png. <?php $image = imagecreate(200,50); imagepng($image, "images/monimage.png"); ?>
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 3) Texte et couleur I- ANALYSE DU BESOIN / Plan Manipuler les couleurs Pour définir une couleur en PHP, on doit utiliser la fonction imagecolorallocate. 4 paramètres : l'image sur laquelle on travaille, la quantité de rouge, la quantité de vert, et la quantité de bleu. <?php header ("Content-type: image/png"); $image = imagecreate(200,50); $orange = imagecolorallocate($image, 255, 128, 0); $noir = imagecolorallocate($image, 0, 0, 0); $blanc = imagecolorallocate($image, 255, 255, 255); imagepng($image); ?> La première fois que vous faites un appel à la fonction imagecolorallocate, cette couleur devient la couleur de fond de votre image.
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 3) Texte et couleur I- ANALYSE DU BESOIN / Plan Écrire du texte Pour écrire du texte, on doit utiliser la fonction imagestring Paramètres de cette fonction : $image : c'est notre fameuse variable qui contient l'image. $police : c'est la police de caractères que vous voulez utiliser. Vous devez mettre un nombre de 1 à 5 ; 1 = petit, 5 = grand $x et $y : ce sont les coordonnées auxquelles vous voulez placer votre texte sur l'image. Le point de coordonnées (0, 0) représente donc le point tout en haut à gauche de l'image. $texte_a_ecrire, c'est le texte que vous voulez écrire. $couleur, c'est une couleur que vous avez créée tout à l'heure avec imagecolorallocate <?php imagestring($image, $police, $x, $y, $texte_a_ecrire, $couleur); ?>
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 3) Texte et couleur I- ANALYSE DU BESOIN / Plan Écrire du texte Exemple <?php header ("Content-type: image/png"); $image = imagecreate(200,50); $orange = imagecolorallocate($image, 255, 128, 0); $blanc = imagecolorallocate($image, 255, 255, 255); imagestring($image, 5, 35, 15, "Salut tous !", $blanc); imagepng($image); ?>
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 4) Dessiner une forme I- ANALYSE DU BESOIN / Plan ImageSetPixel Son rôle : dessiner un pixel aux coordonnées (x,y). ImageLine Sert à dessiner une ligne entre deux points de coordonnées (x1,y1) et (x2,y2). <?php ImageSetPixel ($image, $x, $y, $couleur); ?> <?php ImageLine ($image, $x1, $y1, $x2, $y2, $couleur); ?>
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 4) Dessiner une forme I- ANALYSE DU BESOIN / Plan ImageEllipse dessine une ellipse dont le centre est aux coordonnées (x,y), de largeur $largeur et de hauteur $hauteur. ImageRectangle Dessine un rectangle, dont le coin en haut à gauche est de coordonnées $(x_1, y_1)$ et celui en bas à droite $(x_2, y_2)$. <?php ImageEllipse ($image, $x, $y, $largeur, $hauteur, $couleur); ?> <?php ImageRectangle ($image, $x1, $y1, $x2, $y2, $couleur); ?>
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 4) Dessiner une forme I- ANALYSE DU BESOIN / Plan ImagePolygon Elle dessine un polygone ayant un nombre de points égal à $nombre_de_points (s'il y a trois points, c'est donc un triangle). L'array $array_points contient les coordonnées de tous les points du polygone dans l'ordre : $x_1$, $y_1$, $x_2$, $y_2$, $x_3$, $y_3$, $x_4$, $y_4$… <?php ImagePolygon ($image, $array_points, $nombre_de_points, $couleur); ?>
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 5) Des fonctions encore plus puissantes I- ANALYSE DU BESOIN / Plan Rendre une image transparente PNG uniquement utiliser la fonction imagecolortransparent et de lui indiquer quelle couleur on veut rendre transparente. <?php imagecolortransparent($image, $couleur); ?>
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 5) Des fonctions encore plus puissantes I- ANALYSE DU BESOIN / Plan Mélanger deux images La fonction qui permet de réaliser la fusion entre deux images est imagecopymerge. Ajouter un copyright à une image en bas à droite Voir copyright.php
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 5) Des fonctions encore plus puissantes I- ANALYSE DU BESOIN / Plan Mélanger deux images on manipule deux images : $source (le logo) et $destination (la photo). Il y a ensuite toute une série de calculs à partir des coordonnées et de la largeur et hauteur des images. Le but est de savoir à quelles coordonnées placer le logo sur la photo. Je veux le mettre tout en bas à droite. Pour ça, j'ai besoin de connaître les dimensions des images. les fonctions imagesx et imagesy pour récupérer les dimensions du logo et de la photo. Pour placer le logo tout en bas, il faut le mettre à la position $hauteur_de_la_photo - $hauteur_du_logo On fait de même pour placer le logo à droite : $largeur_de_la_photo - $largeur_du_logo
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 5) Des fonctions encore plus puissantes I- ANALYSE DU BESOIN / Plan Mélanger deux images Fonction imagecopymerge Elle prend de nombreux paramètres. Ce qu'il faut savoir, c'est qu'elle a besoin de deux images : une source et une destination. Elle modifie l'image de destination (ici, la photo) pour y intégrer l'image source. Cela explique pourquoi c'est $destination que l'on affiche à la fin. Les paramètres à donner à la fonction sont, dans l'ordre, les suivants. 1/ L'image de destination : ici $destination 2/ L'image source : ici $source, c'est notre logo. 3/ L'abscisse à laquelle vous désirez placer le logo sur la photo 4/ Ordonnée à laquelle vous désirez placer le logo sur la photo. 5/ L'abscisse de la source 6/ L'ordonnée de la source 7/ La largeur de la source 8/ La hauteur de la source 9/ Le pourcentage de transparence (c'est un nombre entre 0 et 100)
I- ANALYSE DU BESOIN / Plan II- Créer des images en PHP 5) Des fonctions encore plus puissantes I- ANALYSE DU BESOIN / Plan Redimensionner une image Fonction imagecopyresampled Permet de créer des miniatures des images. Voir miniature.php Les paramètres à donner à la fonction sont, dans l'ordre, les suivants. 1/ L'image de destination : ici $destination 2/ L'image source : ici $source, l'image dont on veux créer la mini. 3/ L'abscisse du point à laquelle vous placez la miniature sur l'image de destination 4/ L'ordonnée du point à laquelle vous placez la miniature sur l'image de destination 5/ L'abscisse du point de la source 6/ L'ordonnée du point de la source 7/ La largeur de la miniature 8/ La hauteur de la miniature 9/ La largeur de la source 10/ La hauteur de la source