1. produkty
  2.   obraz
  3.   LibGD

LibGD

 
 

Open Source C Library pro pokročilé zpracování obrazu

Bezplatné C  API, které umožňuje vývojářům rychle kreslit obrázky, přidávat čáry, oblouky, text, více barev a zapisovat výsledek jako soubor PNG nebo JPEG.

Digitální obrázky vždy přitahují více návštěvníků než jednoduchý text. Obrázek vydá za tisíc slov. Mají schopnost přilákat o 94 % více zhlédnutí a zaujmout více návštěvníků. Vždy je plodnější a pohodlnější doručovat zprávy pomocí obrázků. Open source knihovna LibGD umožňuje programátorům rychle kreslit obrázky, přidávat čáry, oblouky, text, více barev a zapisovat výsledek jako soubor PNG nebo JPEG.

LibGD je výkonná grafická knihovna, která pomáhá vývojářům softwaru dynamicky generovat a spravovat obrázky v jejich aplikacích C. Knihovna umí číst a zapisovat mnoho různých obrazových formátů, jako jsou BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM a mnoho dalších. Knihovna LibGD se běžně používá pro vývoj webových stránek, ale může být také použita s jakoukoli samostatnou aplikací. Knihovna obsahuje několik důležitých funkcí pro vytváření obrázků a manipulaci s nimi, jako je generování grafů, grafiky, náhledů a většiny čehokoli jiného, za běhu.

Previous Next

Začínáme s LibGD

Doporučený způsob instalace LibGD je použití CMake. Pro bezproblémovou instalaci použijte prosím následující příkaz

Nainstalujte LibGD přes GitHub.

$ make install 

Naklonujte nejnovější zdroje pomocí následujícího příkazu

Nainstalujte LibGD přes GitHub.

$ git https://github.com/libgd/libgd.git 

Vytvářejte a upravujte obrázky pomocí C

Knihovna LibGD poskytuje možnost snadno vytvářet a manipulovat s obrázky. Umožňuje vytvářet obrázky ve formátech BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM pomocí pouhých několika řádků kódu C. Jedna skvělá funkce knihovny je, že vám umožňuje vytvářet obrázky za běhu. Knihovna je známá pro vytváření obrázků za chodu, které lze použít na webových stránkách. Umožňuje vám programově vytvořit obrázek, vybarvit jej, kreslit na něj a snadno jej uložit na disk.

Generujte a upravujte obrázky přes 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);
    

Změna velikosti obrázku prostřednictvím knihovny C

Knihovna LibGD s otevřeným zdrojovým kódem umožňuje počítačovým programátorům měnit velikost obrázků za běhu pomocí příkazů C v jejich aplikacích. Chcete-li začít, musíte zadat úplnou cestu a název obrázku pro načtení. Jakmile to uděláte, musíte zadat šířku a výšku nového obrázku a umístění výstupu podle vašeho výběru, kam jej chcete uložit. Ujistěte se prosím, že všechny poskytnuté informace jsou správné, kromě toho, že je knihovna nepřijme a vyvolá výjimku.

Změna velikosti obrázku přes 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;
}
    

Oříznout, převrátit, převést nebo otočit obrázky přes C API

Knihovna LibGD poskytla kompletní podporu pro programové ořezávání a převracení obrázků pomocí příkazů C. Knihovna poskytuje několik funkcí pro převrácení obrázku, jako je převrácení obrázku vodorovně nebo svisle, stejně jako obojí. Stejně jako překlápění jej můžete také snadno otočit podle vlastních potřeb. Po dokončení můžete obrázky snadno uložit. Poskytuje také podporu pro převod obrázků PNG a JPEG do jiných podporovaných formátů souborů.

Převeďte obrázek PNG na AVIF přes 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;
}

Načítání obrázku z vyrovnávací paměti v paměti

Knihovna s otevřeným zdrojovým kódem LibGD umožňuje vývojářům softwaru načíst celý obraz do vyrovnávací paměti v jejich vlastních aplikacích C. Jakmile je obrázek načten, vývojáři mohou s obrázkem snadno provádět různé operace, jako je čtení obrázku z vyrovnávací paměti, úprava obrázku, uložení obrázku na určité místo a tak dále. Po dokončení nezapomeňte uvolnit vyrovnávací paměť běžnými funkcemi správy paměti.

 Čeština