Accueil > > > TOUT SUR LES IMAGES DYNAMIQUES
TOUT SUR LES IMAGES DYNAMIQUES
Information sur la source
Description
Au programme aujourd'hui un petit tuto sur les images dynamiques. C'est une des fonctions super puissantes de php. La création dynamique d'image fonctionne toujours sur le même principe : + Création de l'identifiant de l'image + Ajout des détails (texte, couleur, image, dessin...) + On modifie les entêtes pour afficher l'image + Création de l'image dans un fichier ou envoi de l'image créée au navigateur sans enregistrement. + Libération des ressources serveur
Source
- -------------------------
- Créer un identifiant d'image
-
- Image 256 couleurs
- $image = imageCreate($largeur,$hauteur);
- Variables : largeur et hauteur en pixel
-
- Image 16 millions de couleurs
- $image = imageCreateTrueColor($largeur,$hauteur);
- Variables : largeur et hauteur en pixel
-
-
- -------------------------
- Créer un identifiant d'image à partir d'une autre image
-
- Un GIF :
- $image = ImageCreateFromGIF($nomfichier);
- Variable : Nom du fichier à copier (et son chemin s?il n'est pas dans le même dossier)
-
- Un JPEG :
- $image = ImageCreateFromJPEG($nomfichier);
- Variable : Nom du fichier à copier (et son chemin s?il n'est pas dans le même dossier)
-
- Un PNG :
- $image = ImageCreateFromPNG($nomfichier);
- Variable : Nom du fichier à copier (et son chemin s?il n'est pas dans le même dossier)
-
- $image contiendra donc l'identifiant de l'image sur lequel sera effectué les divers travaux
-
-
- -------------------------
- Donner une couleur de fond à l'image et création de sa palette de couleurs
-
- Ajouter une couleur à la palette (cette fonction retourne un identifiant de couleur) :
- $couleur = ImageColorAllocate($image,$rouge,$vert,$bleu);
- Variables : $image : identifiant de l'image, $rouge : entre 0 et 255, $vert : entre 0 et 255, $bleu : entre 0 et 255
- Note : cette fonction ne sert pas qu'à ça mais elle définie la couleur du fond la 1ere fois qu'elle est utilisée.
-
- Couleur la plus proche de la couleur voulue et création de la couleur si elle n'existe pas dans la palette. L'identifiant de la couleur la plus proche de cette
-
- couleur est retournée dans le cas ou la palette est pleine.
- Ne tien pas compte de la transparence
- $couleur = imageColorResolve($image, $rouge, $vert, $bleu);
- Variables : $image : ideAntifiant de l'image, $rouge : entre 0 et 255, $vert : entre 0 et 255, $bleu : entre 0 et 255
-
- Couleur la plus proche de la couleur voulue et création de la couleur si elle n'existe pas dans la palette. L'identifiant de la couleur la plus proche de cette
-
- couleur est retournée dans le cas ou la palette est pleine.
- Tien compte de la transparence
- $couleur = imageColorResolve($image, $rouge, $vert, $bleu, $alpha);
- Variables : $image : identifiant de l'image, $rouge : entre 0 et 255, $vert : entre 0 et 255, $bleu : entre 0 et 255, $alpha
-
-
- -------------------------
- Ecrire sur une image
-
- Ecrire horizontalement sur l'image de façon basic
- imagestring($image,$police,$coordonnee_x,$coordonnee_y,$texte,$couleur);
- Variable : $image : identifiant de l'image, $police : de 1 à 5 pour les polices par défaut (vous pouvez charger une autre police mais il faut une autre gd
-
- installée, voyez plutôt imagettftext() qui suit quelque ligne plus bas),$coordonnee_x : position du texte par rapport au coté gauche de l'image, $coordonnee_y
-
- : position du texte par rapport au haut de l'image, $texte : J?explique pas ça quand même ;) lol, $couleur : couleur de la police
-
- Ecrire verticalement sur l'image de façon basic
- imagestringUP($image,$police,$coordonnee_x,$coordonnee_y,$texte,$couleur);
- Variable : $image : identifiant de l'image, $police : de 1 à 5 pour les polices par défaut (vous pouvez charger une autre police mais il faut une autre gd
-
- installée, voyez plutôt imagettftext() qui suit quelque ligne plus bas),$coordonnee_x : position du texte par rapport au coté gauche de l'image, $coordonnee_y
-
- : position du texte par rapport au haut de l'image, $texte : j'explique pas ça quand même ;) lol, $couleur : couleur de la police
-
- Ecrire de façon totalement libre avec la police que vous voulez
- imagettftext($image,$taille,$angle,$coordonnee_x,$coordonnee_y,$couleur,$nompolice,$texte);
- Variable : $image : identifiant de l'image, $taille : Taille de la police, $angle : inclinaison du texte, $coordonnee_x : position du texte par rapAport au coté
-
- gauche de l'image, $coordonnee_y : position du texte par rapport au haut de l'image, $couleur : couleur de la police, $nompolice : nom de la police (ou
-
- chemin si elle n'est pas dans le dossier, $texte : j'explique pas ça quand même ;) lol
-
-
- -------------------------
- Dessiner sur une image
-
- Dessiner une ligne pleine
- imageLine($image, $coordonnée_x1, $coordonnee_y1, $coordonnée_x2, $coordonnee_y2, $couleur)
- Variables : $image : identifiant de l'image, $coordonnée_x1 : point de départ par rapport au coté gauche de l'image, $coordonnee_y1 : point de départ par
-
- rapport au haut de l'image, $coordonnée_x2 : point d'arrivé par rapport au coté gauche de l'image, $coordonnee_y2 : point d'arrivé par rapport haut de l'image,
-
- $couleur = couleur du trait
-
- Dessiner une ligne pointillée
- imageDashedLine($image, $coordonnée_x1, $coordonnee_y1, $coordonnée_x2, $coordonnee_y2, $couleur)
- Variables : $image : identifiant de l'image, $coordonnée_x1 : point de départ par rapport au coté gauche de l'image, $coordonnee_y1 : point de départ par
-
- rapport au haut de l'image, $coordonnée_x2 : point d'arrivé par rapport au coté gauche de l'image, $coordonnee_y2 : point d'arrivé par rapport haut de l'image,
-
- $couleur = couleur du trait
-
- Dessiner une ellipse ou un arc
- imageArc($image, $centre_X, $centre_Y, $largeur, $hauteur, $angledebut, $anglefin, $couleur)
- Variables : $image : identifiant de l'image,
- $centre_X : point du centre de l'éllipse par rapport au coté gauche de l'image, $centre_Y : point du centre de l'éllipse par rapport au haut de l'image, $largeur :
-
- largeur de l'ellipse, $hauteur : hauteur de l'ellipse, $angledebut : angle en degrés ou commence le tracé, $anglefin : angle en degrés ou fini le tracé, $couleur =
-
- couleur du trait
-
- Dessiner une ellipse ou un cercle plein
- imageArc($image, $centre_X, $centre_Y, $largeur, $hauteur, $angledebut, $anglefin, $couleur, $style)
- Variables : $image : identifiant de l'image, $centre_X : point du centre de l'éllipse par rapport au coté gauche de l'image, $centre_Y A: point du centre de
-
- l'éllipse par rapport au haut de l'image, $largeur : largeur de l'ellipse, $hauteur : hauteur de l'ellipse, $angledebut : angle en degrés ou commence le tracé,
-
- $anglefin : angle en degrés ou fini le tracé, $couleur = couleur du trait, $style : Plusieurs style sont dispo et sont compatible entre eux : IMG_ARC_PIE,
-
- IMG_ARC_CHORD, IMG_ARC_NOFILL, IMG_ARC_EDGED
-
- Dessiner un rectangle
- imagerectangle($image, $coordonnee_X1, $coordonnee_Y1, $coordonnee_X2, $coordonnee_Y2, $couleur);
- Variables : $image : identifiant de l'image, $coordonnee_X1 : point de départ supérieur gauche par rapport à la gauche, $coordonnee_Y1 : point de départ
-
- supérieur gauche par rapport au haut, $coordonnee_X2 : point de fin inférieure droit par rapport à la gauche, $coordonnee_Y2 : point de fin inférieure droit par
-
- rapport au haut, $couleur : couleur du trait
-
- Dessiner un rectangle plein
- imageFilledrectangle($image, $coordonnee_X1, $coordonnee_Y1, $coordonnee_X2, $coordonnee_Y2, $couleur);
- Variables : $image : identifiant de l'image, $coordonnee_X1 : point de départ supérieur gauche par rapport à la gauche, $coordonnee_Y1 : point de départ
-
- supérieur gauche par rapport au haut, $coordonnee_X2 : point de fin inférieure droit par rapport à la gauche, $coordonnee_Y2 : point de fin inférieure droit par
-
- rapport au haut, $couleur : couleur du trait
-
- Dessiner un polygone (256 points max)
- imagePolygon($image, $point[TABLEAU], $nbpoint, $couleur);
- Variables : $image : identifiant de l'image, $point contient les coordonnées de tous les points : $coordonnee_X1 : point 1 par rapport à la gauche,
-
- $coordonnee_Y1 : point 1 par rapport au haut, $coordonnee_X2 : point 2 par rapport à la gauche, $coordonnee_Y2 : point 2 par rapport au haut,
-
- $coordonnee_.............., $nbpoint : la moitié du nombre de point dans le tableau, $couleur : couleur du trait
-
- Dessiner un polygone plein(256 points max)
- imageFilledPolygon($image, $point[TABLEAU], $nbpoint, $couleur);
- Variables : $image : identifiant de l'image, $point contient les coorAdonnées de tous les points : $coordonnee_X1 : point 1 par rapport à la gauche,
-
- $coordonnee_Y1 : point 1 par rapport au haut, $coordonnee_X2 : point 2 par rapport à la gauche, $coordonnee_Y2 : point 2 par rapport au haut,
-
- $coordonnee_.............., $nbpoint : la moitié du nombre de point dans le tableau, $couleur : couleur du trait
-
-
- -------------------------
- Copie d'image
-
- Copier une partie d'une image dans une autre image
- imagecopy($imagedest,$imagesource,$coordonnee_xdest,$coordonnee_ydest,$coordonnee_xsource,$coordonnee_ysource,$largeursource,$hauteursource);
- Variables : $imagedest : identifiant de l'image de destination, $imagesource : identifiant de l'image source, $coordonnee_xdest : point par rapport à la gauche
-
- sur l'image de destination la ou vous voulez copier, $coordonnee_ydest : point par rapport au haut sur l'image de destination la ou vous voulez copier,
-
- $coordonnee_xsource : point par rapport à la gauche sur l'image source, $coordonnee_ysource : point par rapport au haut sur l'image source, $largeursource :
-
- largeur du morceau d'image à récupérer, $hauteursource : hauteur du morceau d'image à récupérer
-
- Copier une partie d'une image dans une autre image avec effet de transparence
- imagecopymerge($imagedest,$imagesource,$coordonnee_xdest,$coordonnee_ydest,$coordonnee_xsource,$coordonnee_ysource,$largeursource,$hauteurso
-
- urce);
- Variables : $imagedest : identifiant de l'image de destination, $imagesource : identifiant de l'image source, $coordonnee_xdest : point par rapport à la gauche
-
- sur l'image de destination la ou vous voulez copier, $coordonnee_ydest : point par rapport au haut sur l'image de destination la ou vous voulez copier,
-
- $coordonnee_xsource : point par rapport à la gauche sur l'image source, $coordonnee_ysource : point par rapport au haut sur l'image source, $largeursource :
-
- largeur du morceau d'image à récupérer, $hauteursource : hauteur du morceau d'image à récupérer, $trans : cooef de transparence
-
- Copier une partie d'une image dans une autre image en changeant de taille lAa sélection
- imagecopyresized($imagedest,$imagesource,$coordonnee_xdest,$coordonnee_ydest,$coordonnee_xsource,$coordonnee_ysource,
-
- $largeurdest,$hauteurdest ,$largeursource,$hauteursource);
- Variables : $imagedest : identifiant de l'image de destination, $imagesource : identifiant de l'image source, $coordonnee_xdest : point par rapport à la gauche
-
- sur l'image de destination la ou vous voulez copier, $coordonnee_ydest : point par rapport au haut sur l'image de destination la ou vous voulez copier,
-
- $coordonnee_xsource : point par rapport à la gauche sur l'image source, $coordonnee_ysource : point par rapport au haut sur l'image source, $largeurdest :
-
- largeur de l'image une fois copiée , $hauteurdest : hauteur de l'image une fois copiée, $largeursource : largeur du morceau d'image à récupérer,
-
- $hauteursource : hauteur du morceau d'image à récupérer, $trans : cooef de transparence
-
- Copier une partie d'une image dans une autre image en changeant de taille la sélection (méthode non pixelisée)
- imagecopyresampled($imagedest,$imagesource,$coordonnee_xdest,$coordonnee_ydest,$coordonnee_xsource,$coordonnee_ysource,
-
- $largeurdest,$hauteurdest ,$largeursource,$hauteursource);
- Variables : $imagedest : identifiant de l'image de destination, $imagesource : identifiant de l'image source, $coordonnee_xdest : point par rapport à la gauche
-
- sur l'image de destination la ou vous voulez copier, $coordonnee_ydest : point par rapport au haut sur l'image de destination la ou vous voulez copier,
-
- $coordonnee_xsource : point par rapport à la gauche sur l'image source, $coordonnee_ysource : point par rapport au haut sur l'image source, $largeurdest :
-
- largeur de l'image une fois copiée , $hauteurdest : hauteur de l'image une fois copiée, $largeursource : largeur du morceau d'image à récupérer,
-
- $hauteursource : hauteur du morceau d'image à récupérer, $trans : cooef de transparence
-
- Copier une image avec un fond transparent sur une image sans fond transparent (et inversement)
- imagealphablending($image,$alpha);
- Variables : $image : identiAfiant de l'image, $alpha : TRUE pour garder la transparence, sinon FALSE. Par défaut c'est FALSE.
-
-
- -------------------------
- Taille d'une image
-
- Largeur
- imageSX($image);
- Variable : $image : identifiant de l'image
-
- Hauteur
- imageSY($image);
- Variable : $image : identifiant de l'image
-
- Divers
- Getimagesize($nom);
- Variable : $nom : nom ou chemin du fichier
- Renvoi un tableau :
- [0] -> largeur en pixel
- [1] -> hauteur en pixel
- [2] -> Format (1 : GIF, 2 : JPG, 3 : PNG, 4 : SWF, 5 : PSD, 6 : BMP, 7 : TIFF(intel), 8 : TIFF(motorola), 9 : JPC, 10 : JP2, 11 JPX)
- [3] -> code html de la taille d'une image witdh="xx" height="xx"
-
-
- -------------------------
- Modification des entêtes
-
- Affichage de GIF
- header("Content-type: image/gif");
-
- Affichage de JPEG
- header("Content-type: image/jpeg");
-
- Affichage de PNG
- header("Content-type: image/png");
-
- ===== ATTENTION =====
- La modification des entêtes empeche l'affichage des messages d'erreur (si vous modifiez les entêtes pour afficher une image et qu'une erreur se produit, le
-
- message ne s'affichera pas puisque le navigateur attend une image).
- Donc ne modifiez les entêtes que juste AVANT LA CREATION DE L'IMAGE et pas en haut du script.
-
- -------------------------
- Génération de l'image : Envoyer l'image au navigateur ou l'enregistrer dans le format voulu
-
- Un GIF :
- ImageGIF($image,$nom);
- Variables : $image = identifiant de l'image, $nom = nom final de l'image AVEC le .GIF
- Si $nom est vide, l'image ne sera pas enregistrée dans un fichier mais juste envoyée au navigateur.
-
- Un JPEG :
- ImageJPEG($image,$nom);
- Variables : $image = identifiant de l'image, $nom = nom final de l'image AVEC le .JPEG
- Si $nom est vide, l'image ne sera pas enregistrée dans un fichier mais juste envoyée au navigateur.
-
- Un PNG :
- ImagePNG($image,$nom);
- Variables : $image = identifiant de l'image, $nom = nom final de l'image AVEC le .PNG
- Si $nom est vide, l'image ne sera pas enregistrée dans un fichier mais juste envoyée au navigateur.
-
- L'image est donc réellement créée. Le fichier existe sur le serveur (si vous lui avez donnez un nom)
- Mais les ressources utilisées par le serveur pour la créer sont toujours occupées.
-
-
- -------------------------
- Libération des ressources
-
- ImageDestroy();
- Variable : Aucune
-
-
- Utilisation des images dynamiques :
- + Si vous créez une image dans un fichier et que vous voulez l'afficher dans une page écrivez <img src="nomdelapageduscript.php">.
-
-
-
-
- >>>>>>>> Page imagecreate.php
-
- <?
- //Création de l'identifiant de l'image
- $image = imagecreate(200,400);
-
- // couleur de fond de l'image
- $fond = imagecolorallocate($image,0,0,0);
-
- // définition des couleurs
- $blanc = imagecolorresolve($image,255,255,255);
- $rouge = imagecolorresolve($image,240,0,0);
- $bleu = imagecolorresolve($image,150,150,255);
- $vert = imagecolorresolve($image,0,150,0);
-
- // On écrit une petite pub pour mon site
- imagettftext($image,20,350,10,20,$blanc,"DEFTONE.TTF","http://www.kame-house.org");
-
- // On souligne pour mettre en évidence
- imagedashedline($image,15,30,180,60,$rouge);
-
- // On met un petit menu
- imagettftext($image,18,0,10,75,$bleu,"DEFTONE.TTF","- Accueil");
- imagettftext($image,18,0,10,100,$bleu,"DEFTONE.TTF","- Identification");
- imagettftext($image,18,0,10,125,$bleu,"DEFTONE.TTF","- Boite de reception");
- imagettftext($image,18,0,10,150,$bleu,"DEFTONE.TTF","- Livre d'or");
-
- // On dessine une fleche
- imagefilledpolygon($image,array(150,200,140,250,190,300,100,250,150,200),5,$bleu);
-
- // On écrit encore
- imagettftext($image,25,0,20,250,$rouge,"DEFTONE.TTF","Image");
- imagettftext($image,25,0,10,270,$rouge,"DEFTONE.TTF","Dynamik");
-
- // Image a copier en partie
- $imagesource = imagecreatefromjpeg("coyot.jpg");
-
- // On prend un petit morceau de l'image, on le rend presque transparente et on le colle
- imagecopymerge($image,$imagesource,25,285,80,80,100,100,35);
-
- imagettftext($image,18,270,180,100,$vert,"DEFTONE.TTF","========= Copyright Tortue Geniale =========");
-
- // modification des entêtes
- header("Content-type: image/jpeg");
- // Envoi au navigateur
- imagejpeg($image, "",100);
-
- // Libération des ressources
- imagedestroy();
- ?>
-------------------------
Créer un identifiant d'image
Image 256 couleurs
$image = imageCreate($largeur,$hauteur);
Variables : largeur et hauteur en pixel
Image 16 millions de couleurs
$image = imageCreateTrueColor($largeur,$hauteur);
Variables : largeur et hauteur en pixel
-------------------------
Créer un identifiant d'image à partir d'une autre image
Un GIF :
$image = ImageCreateFromGIF($nomfichier);
Variable : Nom du fichier à copier (et son chemin s?il n'est pas dans le même dossier)
Un JPEG :
$image = ImageCreateFromJPEG($nomfichier);
Variable : Nom du fichier à copier (et son chemin s?il n'est pas dans le même dossier)
Un PNG :
$image = ImageCreateFromPNG($nomfichier);
Variable : Nom du fichier à copier (et son chemin s?il n'est pas dans le même dossier)
$image contiendra donc l'identifiant de l'image sur lequel sera effectué les divers travaux
-------------------------
Donner une couleur de fond à l'image et création de sa palette de couleurs
Ajouter une couleur à la palette (cette fonction retourne un identifiant de couleur) :
$couleur = ImageColorAllocate($image,$rouge,$vert,$bleu);
Variables : $image : identifiant de l'image, $rouge : entre 0 et 255, $vert : entre 0 et 255, $bleu : entre 0 et 255
Note : cette fonction ne sert pas qu'à ça mais elle définie la couleur du fond la 1ere fois qu'elle est utilisée.
Couleur la plus proche de la couleur voulue et création de la couleur si elle n'existe pas dans la palette. L'identifiant de la couleur la plus proche de cette
couleur est retournée dans le cas ou la palette est pleine.
Ne tien pas compte de la transparence
$couleur = imageColorResolve($image, $rouge, $vert, $bleu);
Variables : $image : ideAntifiant de l'image, $rouge : entre 0 et 255, $vert : entre 0 et 255, $bleu : entre 0 et 255
Couleur la plus proche de la couleur voulue et création de la couleur si elle n'existe pas dans la palette. L'identifiant de la couleur la plus proche de cette
couleur est retournée dans le cas ou la palette est pleine.
Tien compte de la transparence
$couleur = imageColorResolve($image, $rouge, $vert, $bleu, $alpha);
Variables : $image : identifiant de l'image, $rouge : entre 0 et 255, $vert : entre 0 et 255, $bleu : entre 0 et 255, $alpha
-------------------------
Ecrire sur une image
Ecrire horizontalement sur l'image de façon basic
imagestring($image,$police,$coordonnee_x,$coordonnee_y,$texte,$couleur);
Variable : $image : identifiant de l'image, $police : de 1 à 5 pour les polices par défaut (vous pouvez charger une autre police mais il faut une autre gd
installée, voyez plutôt imagettftext() qui suit quelque ligne plus bas),$coordonnee_x : position du texte par rapport au coté gauche de l'image, $coordonnee_y
: position du texte par rapport au haut de l'image, $texte : J?explique pas ça quand même ;) lol, $couleur : couleur de la police
Ecrire verticalement sur l'image de façon basic
imagestringUP($image,$police,$coordonnee_x,$coordonnee_y,$texte,$couleur);
Variable : $image : identifiant de l'image, $police : de 1 à 5 pour les polices par défaut (vous pouvez charger une autre police mais il faut une autre gd
installée, voyez plutôt imagettftext() qui suit quelque ligne plus bas),$coordonnee_x : position du texte par rapport au coté gauche de l'image, $coordonnee_y
: position du texte par rapport au haut de l'image, $texte : j'explique pas ça quand même ;) lol, $couleur : couleur de la police
Ecrire de façon totalement libre avec la police que vous voulez
imagettftext($image,$taille,$angle,$coordonnee_x,$coordonnee_y,$couleur,$nompolice,$texte);
Variable : $image : identifiant de l'image, $taille : Taille de la police, $angle : inclinaison du texte, $coordonnee_x : position du texte par rapAport au coté
gauche de l'image, $coordonnee_y : position du texte par rapport au haut de l'image, $couleur : couleur de la police, $nompolice : nom de la police (ou
chemin si elle n'est pas dans le dossier, $texte : j'explique pas ça quand même ;) lol
-------------------------
Dessiner sur une image
Dessiner une ligne pleine
imageLine($image, $coordonnée_x1, $coordonnee_y1, $coordonnée_x2, $coordonnee_y2, $couleur)
Variables : $image : identifiant de l'image, $coordonnée_x1 : point de départ par rapport au coté gauche de l'image, $coordonnee_y1 : point de départ par
rapport au haut de l'image, $coordonnée_x2 : point d'arrivé par rapport au coté gauche de l'image, $coordonnee_y2 : point d'arrivé par rapport haut de l'image,
$couleur = couleur du trait
Dessiner une ligne pointillée
imageDashedLine($image, $coordonnée_x1, $coordonnee_y1, $coordonnée_x2, $coordonnee_y2, $couleur)
Variables : $image : identifiant de l'image, $coordonnée_x1 : point de départ par rapport au coté gauche de l'image, $coordonnee_y1 : point de départ par
rapport au haut de l'image, $coordonnée_x2 : point d'arrivé par rapport au coté gauche de l'image, $coordonnee_y2 : point d'arrivé par rapport haut de l'image,
$couleur = couleur du trait
Dessiner une ellipse ou un arc
imageArc($image, $centre_X, $centre_Y, $largeur, $hauteur, $angledebut, $anglefin, $couleur)
Variables : $image : identifiant de l'image,
$centre_X : point du centre de l'éllipse par rapport au coté gauche de l'image, $centre_Y : point du centre de l'éllipse par rapport au haut de l'image, $largeur :
largeur de l'ellipse, $hauteur : hauteur de l'ellipse, $angledebut : angle en degrés ou commence le tracé, $anglefin : angle en degrés ou fini le tracé, $couleur =
couleur du trait
Dessiner une ellipse ou un cercle plein
imageArc($image, $centre_X, $centre_Y, $largeur, $hauteur, $angledebut, $anglefin, $couleur, $style)
Variables : $image : identifiant de l'image, $centre_X : point du centre de l'éllipse par rapport au coté gauche de l'image, $centre_Y A: point du centre de
l'éllipse par rapport au haut de l'image, $largeur : largeur de l'ellipse, $hauteur : hauteur de l'ellipse, $angledebut : angle en degrés ou commence le tracé,
$anglefin : angle en degrés ou fini le tracé, $couleur = couleur du trait, $style : Plusieurs style sont dispo et sont compatible entre eux : IMG_ARC_PIE,
IMG_ARC_CHORD, IMG_ARC_NOFILL, IMG_ARC_EDGED
Dessiner un rectangle
imagerectangle($image, $coordonnee_X1, $coordonnee_Y1, $coordonnee_X2, $coordonnee_Y2, $couleur);
Variables : $image : identifiant de l'image, $coordonnee_X1 : point de départ supérieur gauche par rapport à la gauche, $coordonnee_Y1 : point de départ
supérieur gauche par rapport au haut, $coordonnee_X2 : point de fin inférieure droit par rapport à la gauche, $coordonnee_Y2 : point de fin inférieure droit par
rapport au haut, $couleur : couleur du trait
Dessiner un rectangle plein
imageFilledrectangle($image, $coordonnee_X1, $coordonnee_Y1, $coordonnee_X2, $coordonnee_Y2, $couleur);
Variables : $image : identifiant de l'image, $coordonnee_X1 : point de départ supérieur gauche par rapport à la gauche, $coordonnee_Y1 : point de départ
supérieur gauche par rapport au haut, $coordonnee_X2 : point de fin inférieure droit par rapport à la gauche, $coordonnee_Y2 : point de fin inférieure droit par
rapport au haut, $couleur : couleur du trait
Dessiner un polygone (256 points max)
imagePolygon($image, $point[TABLEAU], $nbpoint, $couleur);
Variables : $image : identifiant de l'image, $point contient les coordonnées de tous les points : $coordonnee_X1 : point 1 par rapport à la gauche,
$coordonnee_Y1 : point 1 par rapport au haut, $coordonnee_X2 : point 2 par rapport à la gauche, $coordonnee_Y2 : point 2 par rapport au haut,
$coordonnee_.............., $nbpoint : la moitié du nombre de point dans le tableau, $couleur : couleur du trait
Dessiner un polygone plein(256 points max)
imageFilledPolygon($image, $point[TABLEAU], $nbpoint, $couleur);
Variables : $image : identifiant de l'image, $point contient les coorAdonnées de tous les points : $coordonnee_X1 : point 1 par rapport à la gauche,
$coordonnee_Y1 : point 1 par rapport au haut, $coordonnee_X2 : point 2 par rapport à la gauche, $coordonnee_Y2 : point 2 par rapport au haut,
$coordonnee_.............., $nbpoint : la moitié du nombre de point dans le tableau, $couleur : couleur du trait
-------------------------
Copie d'image
Copier une partie d'une image dans une autre image
imagecopy($imagedest,$imagesource,$coordonnee_xdest,$coordonnee_ydest,$coordonnee_xsource,$coordonnee_ysource,$largeursource,$hauteursource);
Variables : $imagedest : identifiant de l'image de destination, $imagesource : identifiant de l'image source, $coordonnee_xdest : point par rapport à la gauche
sur l'image de destination la ou vous voulez copier, $coordonnee_ydest : point par rapport au haut sur l'image de destination la ou vous voulez copier,
$coordonnee_xsource : point par rapport à la gauche sur l'image source, $coordonnee_ysource : point par rapport au haut sur l'image source, $largeursource :
largeur du morceau d'image à récupérer, $hauteursource : hauteur du morceau d'image à récupérer
Copier une partie d'une image dans une autre image avec effet de transparence
imagecopymerge($imagedest,$imagesource,$coordonnee_xdest,$coordonnee_ydest,$coordonnee_xsource,$coordonnee_ysource,$largeursource,$hauteurso
urce);
Variables : $imagedest : identifiant de l'image de destination, $imagesource : identifiant de l'image source, $coordonnee_xdest : point par rapport à la gauche
sur l'image de destination la ou vous voulez copier, $coordonnee_ydest : point par rapport au haut sur l'image de destination la ou vous voulez copier,
$coordonnee_xsource : point par rapport à la gauche sur l'image source, $coordonnee_ysource : point par rapport au haut sur l'image source, $largeursource :
largeur du morceau d'image à récupérer, $hauteursource : hauteur du morceau d'image à récupérer, $trans : cooef de transparence
Copier une partie d'une image dans une autre image en changeant de taille lAa sélection
imagecopyresized($imagedest,$imagesource,$coordonnee_xdest,$coordonnee_ydest,$coordonnee_xsource,$coordonnee_ysource,
$largeurdest,$hauteurdest ,$largeursource,$hauteursource);
Variables : $imagedest : identifiant de l'image de destination, $imagesource : identifiant de l'image source, $coordonnee_xdest : point par rapport à la gauche
sur l'image de destination la ou vous voulez copier, $coordonnee_ydest : point par rapport au haut sur l'image de destination la ou vous voulez copier,
$coordonnee_xsource : point par rapport à la gauche sur l'image source, $coordonnee_ysource : point par rapport au haut sur l'image source, $largeurdest :
largeur de l'image une fois copiée , $hauteurdest : hauteur de l'image une fois copiée, $largeursource : largeur du morceau d'image à récupérer,
$hauteursource : hauteur du morceau d'image à récupérer, $trans : cooef de transparence
Copier une partie d'une image dans une autre image en changeant de taille la sélection (méthode non pixelisée)
imagecopyresampled($imagedest,$imagesource,$coordonnee_xdest,$coordonnee_ydest,$coordonnee_xsource,$coordonnee_ysource,
$largeurdest,$hauteurdest ,$largeursource,$hauteursource);
Variables : $imagedest : identifiant de l'image de destination, $imagesource : identifiant de l'image source, $coordonnee_xdest : point par rapport à la gauche
sur l'image de destination la ou vous voulez copier, $coordonnee_ydest : point par rapport au haut sur l'image de destination la ou vous voulez copier,
$coordonnee_xsource : point par rapport à la gauche sur l'image source, $coordonnee_ysource : point par rapport au haut sur l'image source, $largeurdest :
largeur de l'image une fois copiée , $hauteurdest : hauteur de l'image une fois copiée, $largeursource : largeur du morceau d'image à récupérer,
$hauteursource : hauteur du morceau d'image à récupérer, $trans : cooef de transparence
Copier une image avec un fond transparent sur une image sans fond transparent (et inversement)
imagealphablending($image,$alpha);
Variables : $image : identiAfiant de l'image, $alpha : TRUE pour garder la transparence, sinon FALSE. Par défaut c'est FALSE.
-------------------------
Taille d'une image
Largeur
imageSX($image);
Variable : $image : identifiant de l'image
Hauteur
imageSY($image);
Variable : $image : identifiant de l'image
Divers
Getimagesize($nom);
Variable : $nom : nom ou chemin du fichier
Renvoi un tableau :
[0] -> largeur en pixel
[1] -> hauteur en pixel
[2] -> Format (1 : GIF, 2 : JPG, 3 : PNG, 4 : SWF, 5 : PSD, 6 : BMP, 7 : TIFF(intel), 8 : TIFF(motorola), 9 : JPC, 10 : JP2, 11 JPX)
[3] -> code html de la taille d'une image witdh="xx" height="xx"
-------------------------
Modification des entêtes
Affichage de GIF
header("Content-type: image/gif");
Affichage de JPEG
header("Content-type: image/jpeg");
Affichage de PNG
header("Content-type: image/png");
===== ATTENTION =====
La modification des entêtes empeche l'affichage des messages d'erreur (si vous modifiez les entêtes pour afficher une image et qu'une erreur se produit, le
message ne s'affichera pas puisque le navigateur attend une image).
Donc ne modifiez les entêtes que juste AVANT LA CREATION DE L'IMAGE et pas en haut du script.
-------------------------
Génération de l'image : Envoyer l'image au navigateur ou l'enregistrer dans le format voulu
Un GIF :
ImageGIF($image,$nom);
Variables : $image = identifiant de l'image, $nom = nom final de l'image AVEC le .GIF
Si $nom est vide, l'image ne sera pas enregistrée dans un fichier mais juste envoyée au navigateur.
Un JPEG :
ImageJPEG($image,$nom);
Variables : $image = identifiant de l'image, $nom = nom final de l'image AVEC le .JPEG
Si $nom est vide, l'image ne sera pas enregistrée dans un fichier mais juste envoyée au navigateur.
Un PNG :
ImagePNG($image,$nom);
Variables : $image = identifiant de l'image, $nom = nom final de l'image AVEC le .PNG
Si $nom est vide, l'image ne sera pas enregistrée dans un fichier mais juste envoyée au navigateur.
L'image est donc réellement créée. Le fichier existe sur le serveur (si vous lui avez donnez un nom)
Mais les ressources utilisées par le serveur pour la créer sont toujours occupées.
-------------------------
Libération des ressources
ImageDestroy();
Variable : Aucune
Utilisation des images dynamiques :
+ Si vous créez une image dans un fichier et que vous voulez l'afficher dans une page écrivez <img src="nomdelapageduscript.php">.
>>>>>>>> Page imagecreate.php
<?
//Création de l'identifiant de l'image
$image = imagecreate(200,400);
// couleur de fond de l'image
$fond = imagecolorallocate($image,0,0,0);
// définition des couleurs
$blanc = imagecolorresolve($image,255,255,255);
$rouge = imagecolorresolve($image,240,0,0);
$bleu = imagecolorresolve($image,150,150,255);
$vert = imagecolorresolve($image,0,150,0);
// On écrit une petite pub pour mon site
imagettftext($image,20,350,10,20,$blanc,"DEFTONE.TTF","http://www.kame-house.org");
// On souligne pour mettre en évidence
imagedashedline($image,15,30,180,60,$rouge);
// On met un petit menu
imagettftext($image,18,0,10,75,$bleu,"DEFTONE.TTF","- Accueil");
imagettftext($image,18,0,10,100,$bleu,"DEFTONE.TTF","- Identification");
imagettftext($image,18,0,10,125,$bleu,"DEFTONE.TTF","- Boite de reception");
imagettftext($image,18,0,10,150,$bleu,"DEFTONE.TTF","- Livre d'or");
// On dessine une fleche
imagefilledpolygon($image,array(150,200,140,250,190,300,100,250,150,200),5,$bleu);
// On écrit encore
imagettftext($image,25,0,20,250,$rouge,"DEFTONE.TTF","Image");
imagettftext($image,25,0,10,270,$rouge,"DEFTONE.TTF","Dynamik");
// Image a copier en partie
$imagesource = imagecreatefromjpeg("coyot.jpg");
// On prend un petit morceau de l'image, on le rend presque transparente et on le colle
imagecopymerge($image,$imagesource,25,285,80,80,100,100,35);
imagettftext($image,18,270,180,100,$vert,"DEFTONE.TTF","========= Copyright Tortue Geniale =========");
// modification des entêtes
header("Content-type: image/jpeg");
// Envoi au navigateur
imagejpeg($image, "",100);
// Libération des ressources
imagedestroy();
?>
Conclusion
Je n'ai pas mis toutes les fonctions (sinon j'y serai encore lol) mais juste celle que j'utilise ainsi que les plus utiles. J'ai l'habitude de ne pas macher le travail, pourquoi changer aujourd'hui :p lol
Pour completer ce tutorial, vous pouvez regarder du coté de la palette et de sa gestion.
ATTENTION : certaines fonctions (comme imagecreatefromgif();) ne fonction qu'avec une GD 2.0 et pas inférieur. Donc Sous Easy PHP 1.6 ça ne passe pas.
Le Zip contient : + Le tuto en .txt + L'image que j'ai utilisé pour l'exemple + La police (jolie d'ailleur) + La page PHP de l'exemple
L'exemple c'est comme d'habitude : Copier coller et ça marche.
Voila bon coding ;) http://www.kame-house.org
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|