Effet Accordéon

Section 1

Mauris mauris ante, blandit et, ultrices a, suscipit eget. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio.

Section 2

Sed non urna. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor aliquet laoreet, mauris turpis velit, faucibus interdum tellus libero ac justo.

Section 3

Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.Phasellus pellentesque purus in massa.

  • List item one
  • List item two
  • List item three

mercredi 17 avril 2013

Images PHP


Images
Pré-requis importants
Ceci concerne les versions de PHP avant la 4.2.3 et EasyPHP 1.6: certaines fonctions comme
gd_info() ou encore imagecreatetruetype() ne sont pas toujours disponibles car PHP fait appel à une
bibliothèque   externe   appelée  GD2.  Pour   les   version  4.2.3  et   au-delà  on  trouve  des   patches   à
l'adresse  http://www.boutell.com/gd/.  Avant  ces versions,   la version GD  linkée avec PHP est   la
.
Ceci concerne les utilisateurs de PHP 4.2.3 et + et EasyPHP 1.7 sur Windows : la configuration
par défaut de EasyPHP 1.7 n'inclut pas le support des images. Pour cela il faut modifier le fichier
PHP.INI en retirant le commentaire de :
extension=php_gd2.dll
Créer une image
Types possibles
Il faut tout d'abord choisir le type de l'image que vous souhaitez créer. Pour cela on peut tester quels
types PHP peut générer avec la fonction imagetypes() et ses constantes associées :
IMG_PNG : format PNG
IMG_JPG : format JPEG
IMG_GIF : format GIF
IMG_WBMP : format Windows Bitmap BMP
if (imagetypes() & IMG_PNG) {
   echo "Le type PNG est supporté";
Puis au début du script, on envoie un header spécifiant le type d'image :
S. ROHAUT Cours Programmation PHP Page 67/93header ("Content-type: image/png"); // ou image/gif ou image/jpeg
Création
Nouvelle image dynamique
Et enfin on créé une image avec la fonction imagecreate() (basée sur une table de couleurs indexée)
ou  imagecreatetruecolor()  (en  truecolor)   avec   comme  paramètres   la   largeur   et   la  hauteur.  La
seconde est conseillée par la documentation PHP. Les fonctions retournent une ressource identifiant
l'image. Par défaut l'image est noire.
$img=@createimage(100,100) or die("Votre PHP ne supporte pas les images");
Récupération d'une image existante
PHP peut charger une image existante au lieu de la créer de toutes pièces. Dans ce cas l'image est
chargée depuis un fichier et on peut ensuite la retravailler comme on le souhaite. On peut utiliser les
fonctions :
imagecreatefromgif() : charge une image GIF
imagecreatefromjpeg() : charge une image JPEG
imagecreatefrompng() : charge une image PNG
imagecreatefromstring() : charge une image depuis une chaîne de texte (par exemple un champ)
Publication
Enfin, on publie l'image avec les fonctions imagexxx(). Si cette fonction est utilisée sans paramètre,
l'image créée est redirigée vers la sortie standard. On peut toutefois préciser comme paramètre un
nom de fichier. Dans ce cas, l'image est sauvée sur disque au format spécifié.
imagepng() : créé une image au format PNG
imagegif() : créé une image au format GIF
imagejpeg() : créé une image au format JPEG
Une fois l'image crée, on peut la supprimer avec imagedestroy() ce qui la décharge de la mémoire.
Voici donc le code d'une page PHP image.php retournant une image :
header ("Content-type: image/png");
$img=@imagecreatetruecolor (100, 50) or die ("Impossible de crée un flux d'image
GD");
/* ICI ON PLACE LES COMMANDES DE DESSIN OU MANIPULATION */
imagepng ($img);
imagedestroy ($img);
S. ROHAUT Cours Programmation PHP Page 68/9314.2.4 Chargement via une autre page
Pour appeler cette image dynamique depuis une page HTML ou PHP il suffit de la placer dans une
balise IMG :
<img src="image.php">
Travailler sur les Images
Récupérer des informations
La fonction getimagesize() permet de récupérer des informations sur une image si on lui passe un
nom de fichier (pas de ressource image). Elle retourne un tableau indexé.
list($width,$height,$type,$attr)=getimagesize("toto.gif");
width : largeur x
height : hauteur y
type : 1 = GIF, 2 = JPG, 3 = PNG, 5 = PSD, 6 = BMP, 7 = TIFF (Ordre des octets Intel), 8 =
TIFF (Ordre des octets Motorola), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF
attr: chaine width/height pour HTML
Si on travaille sur une image qu'on a créé nous-même :
imagesx() : largeur x de l'image
imagesy() : hauteur de l'image
Les couleurs
Il n'est pas possible de voir  toutes les fonctions cependant  une chose est à retenir  :  la notion de
palette  indexée   (createimage())  et   la notion de  truetype.  Dans   le premier  cas   les  couleurs   sont
indexées via un numéro. Dans le second cas, la couleur est une composante RVB.
La fonction imagecolorallocate() permet de définir une couleur qui sera utilisée pour une image. Le
premier paramètre est le ressource de l'image, les trois autres les niveaux de rouge, vert et bleu de la
couleur.
ATTENTION : Avec une image créée avec createimage(), la palette est indexée et le premier
index est   la couleur du  fond.  Donc  :  un premier appel  à  imagecolorallocate()  dans ce cas
modifie la couleur du fond.
$white=imagecolorallocate($img,255,255,255);
La fonction imagecolorat() retourne la valeur exacte (soit l'index de la palette, soit un entier RVB)
du point aux coordonnées x/y de l'image.
S. ROHAUT Cours Programmation PHP Page 69/93$color=imagecolorextact($img,50,50);
La fonction imagecolortransparent() permet de définir la couleur de transparence d'une image dont
la   palette   est   indexée.  Le   premier   paramètre   est   la   ressource   de   l'image
OBLIGATOIREMENT   créée   avec   imagecreate(),   le   second   une   valeur   retournée   par
imagecolorallocate().
La fonction imagecolorstotal() retourne le nombre total de couleurs utilisées pour l'image donnée.
Dessin
Remplissage
On utilise la fonction imagefill() :
$background=imagecolorallocate ($img,255,255,255);
ImageFill($img,0,0,$background);
La   fonction  imagefilltoborder()  permet   un   remplissage   d'une   zone   délimitée   par   une   couleur
donnée.  Dans ce cas  les deux derniers paramètres sont  la couleur de la bordure et  la couleur de
remplissage.
Point
On utilise imagesetpixel() :
$green=imagecolorallocate ($img,0,255,0);
Imagesetpixel($img,2,2,$green);
Ligne
On utilise imageline() :
imageline($img, 10,10,30,40,$blue);
Rectangle
On utilise  imagerectangle()  pour  un  rectangle simple,  imagefilledrectangle()  pour  un  rectangle
rempli.
$blue=ImageColorAllocate($img,0,0,255);
imagerectangle($img, 10,10,30,40,$blue);
imagefilledrectangle($img,12,12,27,37,$green);
Cercle, ellipse
On utilise imageellipse() ou imagefilledellipse(). Attention les deux premiers paramètres sont les
coordonnées du centre de l'ellipse, les deux autres la largeur et la hauteur de l'ellipse.
imageellipse ($img, 50, 50,30, 20, $red);
On peut  aussi  faire des arcs de cercles avec les fonctions  imagearc()  et  imagefilledarc()  :  Juste
S. ROHAUT Cours Programmation PHP Page 70/93avant la couleur on précise le début et la fin de l'arc en degrés (de 0 à 360).
Polygones
On utilise les fonctions imagepolygone() et imagefilledpolygone(). Les sommets du polygone sont
définis dans un tableau : Tab[0]=x0, Tab[1]=y0, Tab[1]=x1, Tab[2]=y1, ...
On doit aussi préciser le nombre de sommets.
imagepolygon($img, array (0, 0,100, 200, 300, 200),3, $blue);
Texte simple
On utilise imagestring() :
imagestring($img, 1, 5, 5,  "Une simple chaîne de texte", $text_color);
Le second paramètre est le numéro de police par défaut de la page actuelle ou du navigateur.

Aucun commentaire:

Enregistrer un commentaire