1. Produkter
  2.   Bilde
  3.   LibGD

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.

Previous Next

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.

 Norsk