LibGD
Open Source C-bibliotek til avanceret billedbehandling
Gratis C API, der gør det muligt for udviklere hurtigt at tegne billeder, tilføje linjer, buer, tekst, flere farver og skrive resultatet ud som en PNG- eller JPEG-fil.
Digitale billeder tiltrækker altid flere besøgende end simpel tekst. Et billede siger mere end tusind ord. De har magten til at tiltrække 94 % flere visninger og engagere flere besøgende. Det er altid mere frugtbart og bekvemt at levere dine beskeder ved hjælp af billeder. Open source-biblioteket LibGD gør det muligt for programmører hurtigt at tegne billeder, tilføje linjer, buer, tekst, flere farver og udskrive resultatet som en PNG- eller JPEG-fil.
LibGD er et kraftfuldt grafikbibliotek, der hjælper s softwareudviklere med dynamisk at generere og administrere billeder inde i deres C-applikationer. Biblioteket kan læse og skrive mange forskellige billedformater såsom BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM og meget mere. Biblioteket LibGD bruges almindeligvis til hjemmesideudvikling, men kan også bruges med enhver selvstændig applikation. Biblioteket har inkluderet flere vigtige funktioner til billedoprettelse og -manipulation, såsom generering af diagrammer, grafik, miniaturebilleder og det meste andet, på farten.
Kom godt i gang med LibGD
Den anbefalede måde at installere LibGD på er at bruge CMake. Brug venligst følgende kommando til glatte installationer
Installer LibGD via GitHub.
$ make install
Klon de seneste kilder ved hjælp af følgende kommando
Installer LibGD via GitHub.
$ git https://github.com/libgd/libgd.git
Generer og rediger billeder via C
LibGD-biblioteket giver mulighed for at skabe og manipulere billeder med lethed. Det giver mulighed for at bruge oprettelsen af billeder i BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM filformater med blot et par linjer C-kode. En stor egenskab ved biblioteket er, at det lader dig skabe billeder på farten. Biblioteket er kendt for at skabe billeder i farten, som kan bruges på websider. Det giver dig mulighed for programmæssigt at oprette et billede, farvelægge det, tegne på det og gemme det på disk med lethed.
Generer og modificer billeder 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);
Ændring af billedstørrelse via C-bibliotek
Open source LibGD-biblioteket gør det muligt for computerprogrammører at ændre størrelsen på deres billeder med det samme ved hjælp af C-kommandoer i deres applikationer. For at starte skal du angive den komplette sti og navnet på billedet til indlæsning. Når det er gjort, skal du angive bredden og højden af dit nye billede og outputplaceringen efter eget valg, hvor du vil gemme det. Sørg for, at alle de angivne oplysninger er korrekte, bortset fra at biblioteket ikke accepterer dem og afgiver en undtagelse.
Ændr størrelse på billede 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, vend, konverter eller roter billeder via C API
LibGD-biblioteket har ydet komplet support til programmatisk beskæring og spejlvending af billeder ved hjælp af C-kommandoer. Biblioteket har givet flere funktioner til at vende billedet, såsom at vende billedet vandret eller lodret såvel som begge dele. Det samme som at vende, kan du også nemt rotere det efter dine egne behov. Når du er færdig, kan du nemt gemme billederne. Det giver også støtte til konvertering af PNG- og JPEG-billeder til andre understøttede filformater.
Konverter PNG-billede til 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;
}
Billede indlæses fra buffer i hukommelsen
Open source-biblioteket LibGD giver softwareudviklere mulighed for at indlæse et helt billede til buffer i hukommelsen inde i deres egne C-applikationer. Når først billedet er indlæst, kan udviklere nemt udføre forskellige handlinger på billedet, såsom at læse billedet fra bufferen, ændre billedet, gemme billedet til et bestemt sted og så videre. Når du er færdig, skal du huske at frigøre bufferen med normale hukommelsesstyringsfunktioner.