LibGD
Open Source C-bibliotek för avancerad bildbehandling
Gratis C API som gör det möjligt för utvecklare att snabbt rita bilder, lägga till linjer, bågar, text, flera färger och skriva ut resultatet som en PNG- eller JPEG-fil.
Digitala bilder lockar alltid fler besökare än enkel text. En bild säger mer än tusen ord. De har kraften att locka till sig 94 % fler visningar och engagera fler besökare. Det är alltid mer fruktbart och bekvämt att leverera dina meddelanden med hjälp av bilder. LibGD-biblioteket med öppen källkod gör det möjligt för programmerare att snabbt rita bilder, lägga till linjer, bågar, text, flera färger och skriva ut resultatet som en PNG- eller JPEG-fil.
LibGD är ett kraftfullt grafikbibliotek som hjälper s mjukvaruutvecklare att dynamiskt generera och hantera bilder i sina C-applikationer. Biblioteket kan läsa och skriva många olika bildformat som BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM och mycket mer. Biblioteket LibGD används ofta för webbutveckling men kan också användas med alla fristående applikationer. Biblioteket har inkluderat flera viktiga funktioner för att skapa och manipulera bilder som att generera diagram, grafik, miniatyrer och det mesta annat, i farten.
Komma igång med LibGD
Det rekommenderade sättet att installera LibGD är att använda CMake. Använd följande kommando för smidiga installationer
Installera LibGD via GitHub.
$ make install
Klona de senaste källorna med följande kommando
Installera LibGD via GitHub.
$ git https://github.com/libgd/libgd.git
Generera och ändra bilder via C
LibGD-biblioteket ger möjlighet att skapa och manipulera bilder med lätthet. Det gör det möjligt att skapa bilder i filformaten BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM med bara ett par rader C-kod. En stor egenskap hos biblioteket är att det låter dig skapa bilder i farten. Biblioteket är känt för att skapa bilder i farten som kan användas på webbsidor. Det gör att du kan skapa en bild, färglägga den, rita på den och spara den på disk med lätthet.
Generera och ändra bilder 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);
Bildstorleksändring via C-bibliotek
LibGD-biblioteket med öppen källkod gör det möjligt för datorprogrammerare att ändra storlek på sina bilder i farten med hjälp av C-kommandon i sina applikationer. För att börja måste du ange den fullständiga sökvägen och namnet på bilden för laddning. När det är gjort måste du ange bredden och höjden på din nya bild och utdataplatsen där du vill spara den. Se till att all tillhandahållen information är korrekt förutom att biblioteket inte accepterar det och gör ett undantag.
Ändra storlek på bild 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;
}
Beskär, vänd, konvertera eller rotera bilder via C API
LibGD-biblioteket har tillhandahållit fullständigt stöd för att beskära och vända bilder med hjälp av C-kommandon. Biblioteket har tillhandahållit flera funktioner för att vända bilden, som att vända bilden horisontellt eller vertikalt samt båda. På samma sätt som att vända kan du också enkelt rotera den efter dina egna behov. När du är klar kan du enkelt spara bilderna. Det ger också stöd för att konvertera PNG- och JPEG-bilder till andra filformat som stöds.
Konvertera PNG-bild till AVIF 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;
}
Bild laddas från buffert i minnet
Biblioteket med öppen källkod LibGD tillåter mjukvaruutvecklare att ladda en hel bild till buffert i minnet i sina egna C-applikationer. När bilden väl har laddats kan utvecklare enkelt utföra olika operationer på bilden, som att läsa bilden från bufferten, modifiera bilden, spara bilden på en viss plats och så vidare. När du är klar, kom ihåg att frigöra bufferten med normala minneshanteringsfunktioner.