Manuel PHP

Table des matières

Préface
I. Au moment de commencer
II. Installation et configuration
III. Référence du langage
IV. Sécurité
V. Caractéristiques
VI. Référence des fonctions
VII. PHP et le moteur interne Zend
VIII. FAQ : foire Aux Questions
IX. Annexes
Remerciements



LXIII. Images

Introduction

PHP ne se limite pas à la génération de pages HTML. Il peut aussi servir à créer et manipuler des images, dans un grand choix de formats, comme GIF, PNG, JPEG, WBMP et XPM. Et PHP peut même générer directement des images pour le navigateur, avec la bibliothèque GD. GD et PHP auront aussi besoin d’autres bibliothèques, en fonction des formats que vous souhaitez utiliser.

Vous pouvez utiliser les fonctions PHP pour obtenir les tailles des images aux formats JPEG, GIF, PNG, SWF, TIFF et JPEG2000.

Avec l’extension exif, vous pourrez travailler avec les informations stockées dans les en-têtes des images JPEG et TIFF. De cette façon, vous pourrez lire les méta-données générées par les appareils numériques. Les fonctions exif ne nécessitent pas la bibliothèque GD.

Note : Lisez la section sur les besoins pour savoir comment étendre les capacités des fonctions sur les images pour lire, écrire et modifier les images. Pour lire les méta-données des photos prises avec des appareils numériques, vous devez utiliser l’extension exif mentionnée ci-dessus.

Pré-requis

Si vous disposez de la bibliothèque GD (disponible à http://www.boutell.com/gd/) vous pourrez aussi créer et manipuler des images.

Les formats des images que vous pourrez manipuler dépendent de la version de GD que vous installerez, et de toutes autres bibliothèques dont GD a besoin pour traiter ces images. Les versions antérieures à la version 1.6 supportent le GIF, mais pas le PNG. À partir des version de GD supérieures à 1.6 et inférieures à 2.0.28, c’est le contraire. Le support du GIF a été rajouté à partir de la verison 2.0.28.

Note : Depuis PHP 4.3, il existe une version de GD qui est distribuée avec PHP. Cette version contient des fonctionnalités supplémentaires, comme les canaux alpha, et il est recommandé de l’utiliser de préférence à la bibliothèque externe, car elle est mieux supportée, et bien plus stable.
Note : Le support pour GD 1.x a été supprimé à partir de PHP 6.0.0, qui requiert 2.0.33 ou supérieur.

Vous pouvez aussi améliorer GD en lui ajoutant des formats d’images supplémentaires.

Tableau 1. Formats d’images supportés

Format d’image Bibliothèque à télécharger Notes
“gif” Uniquement supporté en versions de GD antérieures à la version 1.6 et supérieures ou égales à la version 2.0.28. Le support des images GIF est disponible en lecture seule depuis PHP 4.3.0, et dans la version de la bibliothèque qui est fournie avec la distribution de PHP. L’écriture est supportée depuis PHP 4.3.9 et PHP 5.0.1.
“jpeg-6b” ftp://ftp.uu.net/graphics/jpeg/
“png” http://www.libpng.org/pub/png/libpng.html Uniquement supporté avec GD plus récente que la version 1.6.
“xpm” ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html Il est probable que vous ayez déjà cette bibliothèque disponible si votre système dispose d’un environnement X.

Vous pouvez aussi améliorer GD en lui ajoutant des fonctionnalités de manipulation de polices. Les bibliothèques suivantes sont supportées :

Tableau 2. Bibliothèques de polices supportées

Bibliothèque de police Téléchargement Notes
“FreeType 1.x” http://www.freetype.org/
“FreeType 2” http://www.freetype.org/ Le support a été supprimé à partir de PHP 6.0.0
“T1lib” ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) Support des polices Postscript Type 1.

Installation

Pour activer le support de GD, vous devez compiler PHP avec l’option “–with-gd[=DIR]”, où DIR est le dossier d’installation de GD. Il est recommandé d’utiliser la version de GD qui est distribuée avec PHP, en utilisant simplement l’option “–with-gd”. La bibliothèque GD requiert libpng et libjpeg pour compiler.

Sous Windows, vous devez inclure la bibliothèque “php_gd2.dll” comme extension dans le fichier “php.ini”. La bibliothèque “php_gd.dll” a été supprimée de PHP 4.3.2. Notez aussi que les fonctions conseillées truecolor, comme imagecreatetruecolor(), requièrent GD2.

Pour désactiver le support de GD en PHP 3, ajoutez simplement l’option “–without-gd” dans votre ligne de configuration.

Augmentez les possibilités des GD de gérer d’autres formats d’images en spécifiant les options “–with-XXXX” de compilation suivantes :

Tableau 3. Formats d’image supportés

Format d’image Option de compilation
“jpeg-6b” Pour activer le support de la bibliothèque JPEG-6b, ajouter l’option “–with-jpeg-dir=DIR”.
“xpm” Pour activer le support de la bibliothèque XPM, ajoutez l’option “–with-xpm-dir=DIR”. Si le script de compilation n’est pas capable de trouver les bibliothèques nécessaires, il vous faudra ajouter le chemin vers les bibliothèques X11.
Note : Lorsque vous compilez PHP avec libpng, vous devez utiliser la même version que celle liée à la bibliothèque GD.

Augmentez les possibilités de GD pour qu’elle manipule différents types de polices de caractères en ajoutant les options “–with-XXXX” de compilation suivantes :

Tableau 4. Bibliothèques des polices de caractères supportées

Bibliothèque Option de configuration
“FreeType 1.x” Pour activer le support de FreeType 1.x, ajoutez l’option “–with-ttf[=DIR]”.
“FreeType 2” Pour activer le support de FreeType 2, ajoutez l’option “–with-freetype-dir=DIR”.
“T1lib” Pour activer le support de T1lib (Postscript Type 1 fonts), ajoutez l’option “–with-t1lib[=DIR]”.
“Chaînes TrueType” Pour activer le support des chaînes de caractères TrueType, ajoutez l’option “–enable-gd-native-ttf”.

Configuration à l'exécution

Il n’y a pas de configuration spécifique pour les images mais vous êtes peut être intéressé par les directives de l’extension exif.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l’exécution.

“IMG_GIF” (entier)

“IMG_JPG” (entier)

“IMG_JPEG” (entier)

“IMG_PNG” (entier)

“IMG_WBMP” (entier)

“IMG_XPM” (entier)

“IMG_COLOR_TILED” (entier)

“IMG_COLOR_STYLED” (entier)

“IMG_COLOR_BRUSHED” (entier)

“IMG_COLOR_STYLEDBRUSHED” (entier)

“IMG_COLOR_TRANSPARENT” (entier)

“IMG_ARC_ROUNDED” (entier)

“IMG_ARC_PIE” (entier)

“IMG_ARC_CHORD” (entier)

“IMG_ARC_NOFILL” (entier)

“IMG_ARC_EDGED” (entier)

“IMAGETYPE_GIF” (entier)

“IMAGETYPE_JPEG” (entier)

“IMAGETYPE_PNG” (entier)

“IMAGETYPE_SWF” (entier)

“IMAGETYPE_PSD” (entier)

“IMAGETYPE_BMP” (entier)

“IMAGETYPE_WBMP” (entier)

“IMAGETYPE_XBM” (entier)

“IMAGETYPE_TIFF_II” (entier)

“IMAGETYPE_TIFF_MM” (entier)

“IMAGETYPE_IFF” (entier)

“IMAGETYPE_JB2” (entier)

“IMAGETYPE_JPC” (entier)

“IMAGETYPE_JP2” (entier)

“IMAGETYPE_JPX” (entier)

“IMAGETYPE_SWC” (entier)

PNG_NO_FILTER” (entier)

PNG_FILTER_NONE” (entier)

PNG_FILTER_SUB” (entier)

PNG_FILTER_UP” (entier)

PNG_FILTER_AVG” (entier)

PNG_FILTER_PAETH” (entier)

PNG_ALL_FILTERS” (entier)

Exemples

Exemple 1. Création d’une image PNG avec PHP

<?php
 
header("Content-type: image/png");
$string = $_GET['text'];
$im     = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);
 
?>

Cet exemple doit être appelé depuis une page HTML avec une balise image telle que : “<img src=”button.php?text”>”. Le script ci-dessus, “button.php”, prend la chaîne ““texte”” et l’inscrit sur le fond d’image appelé ““images/button1.png”“, puis l’affiche. C’est une méthode très pratique pour éviter de redessiner un nouveau bouton, dès que vous changez son texte. De cette façon, ils sont générés dynamiquement. Table des matières

gd_info – Retourne des informations à propos de la bibliothèque GD installéegetimagesize – Retourne la taille d’une imageimage_type_to_extension – Retourne l’extension du fichier pour le type d’imageimage_type_to_mime_type – Lit le Mime-Type d’un type d’imageimage2wbmp – Crée une image WBMPimagealphablending – Modifie le mode de blending d’une imageimageantialias – Utiliser ou non les fonctions d’antialiasimagearc – Dessine une ellipse partielleimagechar – Dessine un caractère horizontalementimagecharup – Dessine un caractère verticalementimagecolorallocate – Alloue une couleur pour une imageimagecolorallocatealpha – Alloue une couleur à une imageimagecolorat – Retourne l’index de la couleur d’un pixel donnéimagecolorclosest – Retourne l’index de la couleur la plus proche d’une couleur donnéeimagecolorclosestalpha – Retourne la couleur la plus proche, en tenant compte du canal alphaimagecolorclosesthwb – Lit l’index de la couleur la plus proche d’une couleur spécifiée avec sa teinte, blanc et noirimagecolordeallocate – Supprime une couleur d’une imageimagecolorexact – Retourne l’index de la couleur donnéeimagecolorexactalpha – Retourne l’index d’une couleur avec son canal alphaimagecolormatch – Fait correspondre un peu plus les couleurs de la version palette d’une image aux couleurs de sa version truecolorimagecolorresolve – Retourne l’index de la couleur donnée, ou la plus proche possibleimagecolorresolvealpha –  Retourne un index de couleur ou son alternative la plus proche, y compris le canal alpha imagecolorset – Change la couleur dans une palette à l’index donnéimagecolorsforindex – Retourne la couleur associée à un indeximagecolorstotal – Calcule le nombre de couleurs d’une paletteimagecolortransparent – Définit la couleur transparenteimageconvolution – Applique une matrice de la convolution 3×3, en utilisant le coefficient et l’excentrageimagecopy – Copie une partie d’une imageimagecopymerge – Copie et fusionne une partie d’une imageimagecopymergegray – Copie et fusionne une partie d’une image en niveaux de grisimagecopyresampled – Copie, redimensionne, rééchantillonne une imageimagecopyresized – Copie et redimensionne une partie d’une imageimagecreate – Crée une nouvelle image à paletteimagecreatefromgd2 – Crée une nouvelle image à partir d’un fichier GD2 ou d’une URLimagecreatefromgd2part – Crée une nouvelle image à partir d’une partie de fichier GD2 ou d’une URLimagecreatefromgd – Crée une nouvelle image à partir d’un fichier GD ou d’une URLimagecreatefromgif – Crée une nouvelle image à partir d’un fichier ou d’une URLimagecreatefromjpeg – Crée une nouvelle image à partir d’un fichier ou d’une URLimagecreatefrompng – Crée une nouvelle image à partir d’un fichier ou d’une URLimagecreatefromstring – Crée une image à partir d’une chaîneimagecreatefromwbmp – Crée une nouvelle image à partir d’un fichier ou d’une URLimagecreatefromxbm – Crée une nouvelle image à partir d’un fichier ou d’une URLimagecreatefromxpm – Crée une nouvelle image à partir d’un fichier ou d’une URLimagecreatetruecolor – Crée une nouvelle image en couleurs vraiesimagedashedline – Dessine une ligne pointilléeimagedestroy – Détruit une imageimageellipse – Dessine une ellipseimagefill – Remplissageimagefilledarc – Dessine une ellipse partielle et la remplitimagefilledellipse – Dessine une ellipse pleineimagefilledpolygon – Dessine un polygone rempliimagefilledrectangle – Dessine un rectangle rempliimagefilltoborder – Remplit une région avec une couleur spécifiqueimagefilter – Applique un filtre à une imageimagefontheight – Retourne la hauteur de la policeimagefontwidth – Retourne la largeur de la policeimageftbbox – Calcule le rectangle d’encadrement pour un texte, en utilisant la police courante et freetype2imagefttext – Écrit du texte dans une image avec la police courante FreeType 2imagegammacorrect – Applique une correction gamma à l’image GDimagegd2 – Génère une image au format GD2, vers le navigateur ou un fichierimagegd – Génère une image au format GD, vers le navigateur ou un fichierimagegif – Envoie une image GIF vers un navigateur ou un fichierimageinterlace – Active ou désactive l’entrelacementimageistruecolor – Détermine si une image est une image truecolorimagejpeg – Envoie une image JPEG vers un navigateur ou un fichierimagelayereffect – Active l’option d’alpha blending, pour utiliser les effets de libgdimageline – Dessine une ligneimageloadfont – Charge une nouvelle policeimagepalettecopy – Copie la palette d’une image à l’autreimagepng – Envoie une image PNG vers un navigateur ou un fichierimagepolygon – Dessine un polygoneimagepsbbox – Retourne le rectangle entourant un texte et dessiné avec une police PostScript Type1imagepsencodefont – Change le codage vectoriel d’un caractère dans une policeimagepsextendfont – Étend ou condense une police de caractèresimagepsfreefont – Libère la mémoire occupée par une police PostScript Type 1imagepsloadfont – Charge une police PostScript Type 1 depuis un fichierimagepsslantfont – Incline une police de caractères PostScriptimagepstext – Dessine un texte sur une image avec une police PostScript Type1imagerectangle – Dessine un rectangleimagerotate – Fait tourner une image d’un angleimagesavealpha – Configure l’enregistrement des informations complètes du canal alpha lors de sauvegardes d’images PNGimagesetbrush – Modifie la brosse pour le dessin des lignesimagesetpixel – Dessine un pixelimagesetstyle – Configure le style pour le dessin des lignesimagesetthickness – Modifie l’épaisseur d’un traitimagesettile – Modifie l’image utilisée pour le carrelageimagestring – Dessine une chaîne horizontaleimagestringup – Dessine une chaîne verticaleimagesx – Retourne la largeur d’une imageimagesy – Retourne la hauteur de l’imageimagetruecolortopalette – Convertit une image en couleurs vraies en image à paletteimagettfbbox – Retourne le rectangle entourant un texte et dessiné avec une police TrueTypeimagettftext – Dessine un texte avec une police TrueTypeimagetypes – Retourne les types d’images supportés par la version courante de PHPimagewbmp – Affiche une image WBMPimagexbm – Génère une image au format XBMiptcembed – Intègre des données binaires IPTC dans une image JPEGiptcparse – Analyse un bloc binaire IPTC et recherche les balises simplesjpeg2wbmp – Convertit une image JPEG en image WBMPpng2wbmp – Convertit une image PNG en image WBMP

Travail collaboratif

Contribuez, en ajjoutant des elements a cette page de manuel :

Merci de votre aide
L’equipe Php.fr

 


Index | Afficher le texte source | Anciennes révisions | Derniers changements | Connexion
©2007 Wiki Copyright