1. Produkter
  2.   Bild
  3.   LibGD

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.

Previous Next

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.

 Svenska