Les premiers pas
Le LibGD est une bibliothèque graphique. Elle permet à votre code de dessiner rapidement des images complètes avec des lignes, des arcs, du texte, plusieurs couleurs, de copier et coller à partir d'autres images et de remplir les champs, et d'écrire le résultat sous forme de fichier PNG ou JPEG. Ceci est particulièrement utile dans les applications World Wide Web, où PNG et JPEG sont deux des formats acceptés pour les images en ligne par la plupart des navigateurs.
Le LibGD n'est pas un programme de dessin. Si vous cherchez un programme de dessin, vous cherchez au mauvais endroit. Si vous n'êtes pas un programmeur, vous cherchez au mauvais endroit, à moins que vous n'installiez une bibliothèque requise pour exécuter une application.
Le LibGD ne fournit pas toutes les opérations graphiques souhaitables possibles. Il n'est ni nécessaire ni souhaitable que LibGD devienne un paquet graphique de base, mais la version 2.0 inclut les fonctionnalités les plus fréquemment demandées, notamment les images en vraies couleurs et en palette, le rééchantillonnage (redimensionnement fluide des images en vraies couleurs),...
Installation et configuration
Avant d'utiliser LibGD, vous devez installer la bibliothèque sur votre système. Selon votre environnement de développement, cela peut se faire avec des gestionnaires de paquets :
- Sous Linux :
- Sous Windows : Téléchargez la bibliothèque précompilée ou compilez-la à partir des sources.
- Assurez-vous que LibGD est bien liée à votre projet, surtout si vous utilisez des compilateurs comme GCC.
sudo apt-get install libgd-dev |
Notions de base sur LibGD : Utiliser gd dans votre programme
Le LibGD vous permet de créer des images PNG ou JPEG à la volée. Pour utiliser LibGD dans votre programme, incluez le fichier gd.h et créez un lien avec la bibliothèque gd et les autres bibliothèques requises; la syntaxe pour la plupart des versions d'Unix est :
-lgd -lpng -lz -ljpeg -lfreetype -lm |
En supposant que toutes ces bibliothèques soient disponibles.
Si vous souhaitez utiliser les polices de caractères simples fournies, incluez gdfontt.h, gdfonts.h, gdfontmb.h, gdfontl.h et/ou gdfontg.h. Pour des résultats plus impressionnants, installez FreeType 2.x et utilisez la fonction gdImageStringFT. Si vous n'utilisez pas le Makefile fourni et/ou une approche basée sur une bibliothèque, assurez-vous d'inclure également les modules sources dans votre projet.
Voici un court exemple de programme. (Pour un exemple plus avancé, voir gddemo.c, inclus dans la distribution. gddemo.c n'est pas le même programme; il présente des fonctionnalités supplémentaires !)
- /* Intégrer les fonctions de la bibliothèque GD */
- #include "gd.h"
-
- /* Intégrez les entrées/sorties standard afin que nous puissions générer le PNG dans un fichier */
- #include <stdio.h>
-
- int main() {
- /* Déclarer l'image */
- gdImagePtr im;
- /* Déclarer les fichiers de sortie */
- FILE *pngout, *jpegout;
- /* Déclarer les index de couleur */
- int black;
- int white;
-
- /* Allouer l'image : 64 pixels de large sur 64 pixels de haut */
- im = gdImageCreate(64, 64);
-
- /* Attribuez la couleur noire (rouge, vert et bleu au minimum). Comme il s'agit de la première couleur d'une nouvelle image, elle sera la couleur d'arrière-plan. */
- black = gdImageColorAllocate(im, 0, 0, 0);
-
- /* Attribuer la couleur blanche (rouge, vert et bleu tous au maximum). */
- white = gdImageColorAllocate(im, 255, 255, 255);
-
- /* Tracez une ligne du coin supérieur gauche au coin inférieur droit, en utilisant l'index de couleur blanc. */
- gdImageLine(im, 0, 0, 63, 63, white);
-
- /* Ouvrir un fichier en écriture. «wb» signifie «écrire binaire», important sous MSDOS, inoffensif sous Unix. */
- pngout = fopen("test.png", "wb");
-
- /* Faites la même chose pour un fichier au format JPEG. */
- jpegout = fopen("test.jpg", "wb");
-
- /* Exportez l'image vers le fichier disque au format PNG. */
- gdImagePng(im, pngout);
-
- /* Générez la même image au format JPEG, en utilisant le paramètre de qualité JPEG par défaut. */
- gdImageJpeg(im, jpegout, -1);
-
- /* Fermez les fichiers. */
- fclose(pngout);
- fclose(jpegout);
-
- /* Détruire l'image en mémoire. */
- gdImageDestroy(im);
- }
Initialisation d'une image
Pour créer ou charger une image, LibGD offre plusieurs fonctions. Pour créer une nouvelle image vide :
- gdImagePtr image = gdImageCreateTrueColor(800, 600);
Ici, une image de 800x600 pixels en couleurs vraies (TrueColor) est créée.
Pour charger une image existante :
Manipulation des graphiques
LibGD permet de dessiner des formes, d'ajouter du texte ou d'appliquer des transformations. Dessiner une ligne :
- gdImageLine(image, 10, 10, 200, 200, gdImageColorAllocate(image, 255, 0, 0));
Cette ligne rouge va de (10, 10) à (200, 200).
Ajouter du texte avec une police de caractères TrueType :
Exporter l'image
Une fois vos modifications terminées, vous pouvez sauvegarder l'image. Exporter au format PNG :
Les autres formats : LibGD prend également en charge JPEG, GIF et WebP.
Libération des ressources
N'oubliez pas de libérer les ressources pour éviter les fuites de mémoire :
- gdImageDestroy(image);