LibGD
Open Source C-bibliotek for avansert bildebehandling
Gratis C API som lar utviklere raskt tegne bilder, legge til linjer, buer, tekst, flere farger og skrive ut resultatet som en PNG- eller JPEG-fil.
Digitale bilder tiltrekker alltid flere besøkende enn enkel tekst. Et bilde er verdt tusen ord. De har makten til å tiltrekke seg 94 % flere visninger og engasjere flere besøkende. Det er alltid mer fruktbart og praktisk å levere meldingene dine ved hjelp av bilder. Open source-biblioteket LibGD gjør det mulig for programmerere å raskt tegne bilder, legge til linjer, buer, tekst, flere farger og skrive ut resultatet som en PNG- eller JPEG-fil.
LibGD er et kraftig grafikkbibliotek som hjelper programvareutviklere med å generere og administrere bilder dynamisk i C-applikasjonene deres. Biblioteket kan lese og skrive mange forskjellige bildeformater som BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM og mye mer. Biblioteket LibGD brukes ofte til utvikling av nettsteder, men kan også brukes med alle frittstående applikasjoner. Biblioteket har inkludert flere viktige funksjoner for oppretting og manipulering av bilder, som å generere diagrammer, grafikk, miniatyrbilder og det meste annet, mens du er på farten.
Komme i gang med LibGD
Den anbefalte måten å installere LibGD på er å bruke CMake. Bruk følgende kommando for jevne installasjoner
Installer LibGD via GitHub.
$ make install
Klon de nyeste kildene ved å bruke følgende kommando
Installer LibGD via GitHub.
$ git https://github.com/libgd/libgd.git
Generer og modifiser bilder via C
LibGD-biblioteket gir muligheten til å lage og manipulere bilder med letthet. Det lar deg lage bilder i BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM filformater med bare et par linjer med C-kode. En flott funksjon ved biblioteket er at det lar deg lage bilder på farten. Biblioteket er kjent for å lage bilder på farten som kan brukes på nettsider. Den lar deg programmere lage et bilde, fargelegge det, tegne på det og lagre det på disk med letthet.
Generer og modifiser 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);
Endre størrelse på bilde via C-bibliotek
LibGD-biblioteket med åpen kildekode gjør det mulig for dataprogrammerere å endre størrelsen på bildene sine med en gang ved hjelp av C-kommandoer i applikasjonene deres. For å starte må du oppgi den fullstendige banen og navnet på bildet for lasting. Når det er gjort, må du oppgi bredden og høyden på det nye bildet og utdataplasseringen du ønsker å lagre det. Sørg for at all den oppgitte informasjonen er korrekt, bortsett fra at biblioteket ikke godtar det og gir et unntak.
Endre størrelse på bilde 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;
}
Beskjær, snu, konverter eller roter bilder via C API
LibGD-biblioteket har gitt fullstendig støtte for programmatisk beskjæring og vending av bilder ved hjelp av C-kommandoer. Biblioteket har gitt flere funksjoner for å snu bildet, for eksempel å snu bildet horisontalt eller vertikalt samt begge deler. På samme måte som å snu, kan du også enkelt rotere den etter dine egne behov. Når du er ferdig kan du enkelt lagre bildene. Den gir også støtte for konvertering av PNG- og JPEG-bilder til andre støttede filformater.
Konverter PNG-bilde 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;
}
Bilde lastes inn fra buffer i minnet
Open source-biblioteket LibGD lar programvareutviklere laste et helt bilde til buffer i minnet i sine egne C-applikasjoner. Når bildet er lastet kan utviklere enkelt utføre forskjellige operasjoner på bildet, for eksempel å lese bildet fra bufferen, endre bildet, lagre bildet til et bestemt sted, og så videre. Når du er ferdig, husk å frigjøre bufferen med normale minneadministrasjonsfunksjoner.