LibGD
Bibliothèque Open Source C pour le traitement d'image avancé
API C gratuite qui permet aux développeurs de dessiner rapidement des images, d'ajouter des lignes, des arcs, du texte, plusieurs couleurs et d'écrire le résultat sous forme de fichier PNG ou JPEG.
Les images numériques attirent toujours plus de visiteurs que le simple texte. Une image vaut mieux que mille mots. Ils ont le pouvoir d'attirer 94 % de vues en plus et d'engager plus de visiteurs. Il est toujours plus fructueux et pratique de faire passer vos messages à l'aide d'images. La bibliothèque open source LibGD permet aux programmeurs de dessiner rapidement des images, d'ajouter des lignes, des arcs, du texte, plusieurs couleurs et d'écrire le résultat sous forme de fichier PNG ou JPEG.
LibGD est une bibliothèque graphique puissante qui aide les développeurs de logiciels à générer et gérer dynamiquement des images dans leurs applications C. La bibliothèque peut lire et écrire de nombreux formats d'image différents tels que BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM et bien plus encore. La bibliothèque LibGD est couramment utilisée pour le développement de sites Web, mais peut également être utilisée avec n'importe quelle application autonome. La bibliothèque a inclus plusieurs fonctionnalités importantes pour la création et la manipulation d'images telles que la génération de tableaux, de graphiques, de vignettes et de presque tout le reste, à la volée.
Premiers pas avec LibGD
La méthode recommandée pour installer LibGD consiste à utiliser CMake. Veuillez utiliser la commande suivante pour des installations fluides
Installez LibGD via GitHub.
$ make install
Clonez les dernières sources à l'aide de la commande suivante
Installez LibGD via GitHub.
$ git https://github.com/libgd/libgd.git
Générer et modifier des images via C
La bibliothèque LibGD offre la possibilité de créer et de manipuler facilement des images. Il permet d'utiliser la création d'images aux formats de fichier BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM avec seulement quelques lignes de code C. Une grande caractéristique de la bibliothèque est qu'elle vous permet de créer des images à la volée. La bibliothèque est connue pour créer des images à la volée qui peuvent être utilisées sur des pages Web. Il vous permet de créer une image par programmation, de la colorier, de dessiner dessus et de l'enregistrer sur disque en toute simplicité.
Générer et modifier les images via C API
gdImagePtr im;
int black, white;
FILE *out;
// Create the image
im = gdImageCreate(100, 100);
// Allocate background
white = gdImageColorAllocate(im, 255, 255, 255);
// Allocate drawing color
black = gdImageColorAllocate(im, 0, 0, 0);
// Draw rectangle
gdImageRectangle(im, 0, 0, 99, 99, black);
// Open output file in binary mode
out = fopen("rect.jpg", "wb");
// Write JPEG using default quality
gdImageJpeg(im, out, -1);
// Close file
fclose(out);
// Destroy image
gdImageDestroy(im);
Redimensionnement d'image via la bibliothèque C
La bibliothèque open source LibGD permet aux programmeurs informatiques de redimensionner leurs images à la volée à l'aide de commandes C dans leurs applications. Pour commencer, vous devez fournir le chemin complet et le nom de l'image à charger. Une fois cela fait, vous devez fournir la largeur et la hauteur de votre nouvelle image et l'emplacement de sortie de votre choix où vous souhaitez l'enregistrer. Veuillez vous assurer que toutes les informations fournies sont correctes, à part que la bibliothèque ne les accepte pas et lève une exception.
Rétablir l'image via C API
int main (int argc, char *argv[]) {
FILE *fp;
gdImagePtr in, out;
int w, h;
/* Help */
if (argc<=4) {
printf("%s input.jpg output.jpg width height\n", argv[0]);
return 1;
}
/* Size */
w = atoi(argv[3]);
h = atoi(argv[4]);
if (w<=0 || h<=0) {
fprintf(stderr, "Bad size %dx%d\n", h, w);
return 2;
}
/* Input */
fp = fopen(argv[1], "rb");
if (!fp) {
fprintf(stderr, "Can't read image %s\n", argv[1]);
return 3;
}
in = gdImageCreateFromJpeg(fp);
fclose(fp);
if (!in) {
fprintf(stderr, "Can't create image from %s\n", argv[1]);
return 4;
}
/* Resize */
gdImageSetInterpolationMethod(in, GD_BILINEAR_FIXED);
out = gdImageScale(in, w, h);
if (!out) {
fprintf(stderr, "gdImageScale fails\n");
return 5;
}
/* Output */
fp = fopen(argv[2], "wb");
if (!fp) {
fprintf(stderr, "Can't save image %s\n", argv[2]);
return 6;
}
gdImageJpeg(out, fp, 90);
fclose(fp);
/* Cleanups */
gdImageDestroy(in);
gdImageDestroy(out);
return 0;
}
Images de cultures, de feuilles, de plaquettes ou de rotatifs via C API
La LibGD bibliothèque a fourni un soutien complet aux images de culture et de coupe programmatiques à l'aide de commandements C. La bibliothèque a fourni de multiples fonctions pour l'abattage de l'image, comme le repli de l'image horizontalement ou verticalement, ainsi que les deux. Vous pouvez aussi facilement le faire en fonction de vos besoins. Une fois fait, vous pouvez sauvegarder les images avec facilité. Il appuie également la conversion des images NG et JPEG à d'autres formats de fichiers appuyés.
Convertir l'image NG à AIF via C API
int main(int argc, char **argv)
{
gdImagePtr im;
FILE *in, *out;
if (argc != 3) {
fprintf(stderr, "Usage: png2avif infile.png outfile.avif\n");
exit(1);
}
printf("Reading infile %s\n", argv[1]);
in = fopen(argv[1], "rb");
if (!in) {
fprintf(stderr, "Error: input file %s does not exist.\n", argv[1]);
exit(1);
}
im = gdImageCreateFromPng(in);
fclose(in);
if (!im) {
fprintf(stderr, "Error: input file %s is not in PNG format.\n", argv[1]);
exit(1);
}
out = fopen(argv[2], "wb");
if (!out) {
fprintf(stderr, "Error: can't write to output file %s\n", argv[2]);
gdImageDestroy(im);
exit(1);
}
fprintf(stderr, "Encoding...\n");
gdImageAvifEx(im, out, 100, 0);
printf("Wrote outfile %s.\n", argv[2]);
fclose(out);
gdImageDestroy(im);
return 0;
}
Chargement d'image à partir du tampon en mémoire
La bibliothèque open source LibGD permet aux développeurs de logiciels de charger une image entière à mettre en mémoire tampon dans leurs propres applications C. Une fois l'image chargée, les développeurs peuvent facilement effectuer différentes opérations sur l'image, telles que la lecture de l'image à partir du tampon, la modification de l'image, l'enregistrement de l'image à un emplacement particulier, etc. Une fois cela fait, n'oubliez pas de libérer le tampon avec les fonctions normales de gestion de la mémoire.