1. Termékek
  2.   Kép
  3.   LibGD

LibGD

 
 

Nyílt forráskódú C Library a fejlett képfeldolgozáshoz

Ingyenes C API, amellyel a fejlesztők gyorsan rajzolhatnak képeket, vonalakat, íveket, szöveget és több színt adhatnak hozzá, és az eredményt kiírhatják PNG- vagy JPEG-fájlként.

A digitális képek mindig több látogatót vonzanak, mint az egyszerű szöveg. Egy kép többet ér ezer szónál. Képesek 94%-kal több megtekintést vonzani és több látogatót vonzani. Mindig gyümölcsözőbb és kényelmesebb, ha képekkel kézbesíti üzeneteit. A LibGD nyílt forráskódú könyvtár lehetővé teszi a programozók számára, hogy gyorsan rajzoljanak képeket, vonalakat, íveket, szöveget, több színt adjanak hozzá, és az eredményt PNG vagy JPEG fájlként írják ki.

A LibGD egy hatékony grafikus könyvtár, amely segíti a szoftverfejlesztőket a C-alkalmazásokon belüli képek dinamikus létrehozásában és kezelésében. A könyvtár számos különböző képformátumot képes olvasni és írni, mint például a BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM és még sok más. A LibGD könyvtárat általában webhelyfejlesztésre használják, de bármely önálló alkalmazással is használható. A könyvtár számos fontos funkciót tartalmaz a képek létrehozásához és manipulálásához, például diagramok, grafikák, miniatűrök és sok minden más létrehozása menet közben.

Previous Next

A LibGD használatának megkezdése

A LibGD telepítésének javasolt módja a CMake használata. Kérjük, használja a következő parancsot a zökkenőmentes telepítéshez

Telepítse a LibGD-t a GitHubon keresztül.

$ make install 

Klónozza a legújabb forrásokat a következő paranccsal

Telepítse a LibGD-t a GitHubon keresztül.

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

Képek létrehozása és módosítása a C segítségével

A LibGD könyvtár lehetővé teszi a képek egyszerű létrehozását és kezelését. Lehetővé teszi képek létrehozását BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM fájlformátumokban, mindössze néhány soros C kóddal. A könyvtár egyik nagyszerű tulajdonsága, hogy lehetővé teszi a képek menet közbeni létrehozását. A könyvtár arról ismert, hogy menet közben hoz létre képeket, amelyeket weboldalakon lehet használni. Lehetővé teszi, hogy programozottan hozzon létre egy képet, színezze ki, rajzoljon rá, és könnyedén mentse lemezre.

Képek létrehozása és módosítása C API-n keresztül

    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);
    

Kép átméretezése a C Library segítségével

A nyílt forráskódú LibGD könyvtár lehetővé teszi a számítógépes programozók számára, hogy menet közben átméretezzék képeiket az alkalmazásokon belüli C parancsok segítségével. Az indításhoz meg kell adnia a teljes elérési utat és a kép nevét a betöltéshez. Ha ez megtörtént, meg kell adnia az új kép szélességét és magasságát, valamint a kiválasztott kimeneti helyet, ahová menteni szeretné. Kérjük, győződjön meg arról, hogy minden megadott információ helyes, kivéve, hogy a könyvtár nem fogadja el, és kivételt tesz.

Kép átméretezése C API-n keresztül

    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;
}
    

Vágja le, fordítsa meg, alakítsa át vagy forgassa el a képeket a C API-n keresztül

A LibGD könyvtár teljes támogatást nyújtott a képek programozott vágásához és átfordításához C parancsokkal. A könyvtár több funkciót is kínál a kép megfordításához, például a kép vízszintes vagy függőleges megfordítását, valamint mindkettőt. Ugyanúgy, mint az átfordításnál, könnyedén elforgathatja saját igényei szerint. Ha elkészült, könnyedén elmentheti a képeket. Ezenkívül támogatja a PNG és JPEG képek más támogatott fájlformátumokká való konvertálását.

Konvertálja a PNG-képet AVIF-re a C API-n keresztül

   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;
}

Kép betöltése a memóriában lévő pufferből

A LibGD nyílt forráskódú könyvtár lehetővé teszi a szoftverfejlesztők számára, hogy betöltsenek egy teljes képet, hogy puffereljenek a memóriába saját C-alkalmazásaikon belül. A kép betöltése után a fejlesztők könnyen végrehajthatnak különböző műveleteket a képpel, például kiolvashatják a képet a pufferből, módosíthatják a képet, elmenthetik a képet egy adott helyre stb. Ha végzett, ne felejtse el felszabadítani a puffert a normál memóriakezelési funkciókkal.

 Magyar