1. Produktai
  2.   Vaizdas
  3.   LibGD

LibGD

 
 

Atvirojo kodo C biblioteka, skirta išplėstiniam vaizdo apdorojimui

Nemokama C API, leidžianti kūrėjams greitai piešti vaizdus, pridėti linijų, lankų, teksto, kelių spalvų ir įrašyti rezultatą kaip PNG arba JPEG failą.

Skaitmeniniai vaizdai visada pritraukia daugiau lankytojų nei paprastas tekstas. Nuotrauka yra verta tūkstančio žodžių. Jie gali pritraukti 94 % daugiau peržiūrų ir sudominti daugiau lankytojų. Visada vaisingiau ir patogiau siųsti pranešimus naudojant vaizdus. Atvirojo kodo biblioteka LibGD leidžia programuotojams greitai piešti vaizdus, pridėti linijas, lankus, tekstą, kelias spalvas ir įrašyti rezultatą kaip PNG arba JPEG failą.

LibGD yra galinga grafikos biblioteka, kuri padeda programinės įrangos kūrėjams dinamiškai generuoti ir valdyti vaizdus savo C programose. Biblioteka gali skaityti ir rašyti daugybę skirtingų vaizdo formatų, tokių kaip BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM ir daug daugiau. Biblioteka LibGD dažniausiai naudojama kuriant svetaines, bet taip pat gali būti naudojama su bet kokia atskira programa. Bibliotekoje yra keletas svarbių vaizdų kūrimo ir manipuliavimo funkcijų, pvz., diagramų, grafikos, miniatiūrų ir daugelio kitų dalykų generavimas.

Previous Next

Darbo su LibGD pradžia

Rekomenduojamas būdas įdiegti LibGD yra naudoti CMake. Norėdami sklandžiai įdiegti, naudokite šią komandą

Įdiekite „LibGD“ per „GitHub“.

$ make install 

Klonuokite naujausius šaltinius naudodami šią komandą

Įdiekite „LibGD“ per „GitHub“.

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

Generuokite ir keiskite vaizdus naudodami C

LibGD biblioteka suteikia galimybę lengvai kurti ir manipuliuoti vaizdais. Tai leidžia kurti vaizdus BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM failų formatais, naudojant tik kelias C kodo eilutes. Viena puiki bibliotekos savybė yra ta, kad ji leidžia kurti vaizdus skrendant. Biblioteka garsėja tuo, kad kuria vaizdus, kuriuos galima naudoti tinklalapiuose. Tai leidžia programiškai sukurti vaizdą, jį nuspalvinti, piešti ir lengvai išsaugoti diske.

Generuokite ir keiskite vaizdus naudodami 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);
    

Vaizdo dydžio keitimas naudojant C biblioteką

Atvirojo kodo LibGD biblioteka leidžia kompiuterių programuotojams greitai pakeisti savo vaizdų dydį naudodami C komandas savo programose. Norėdami pradėti, turite pateikti visą kelią ir vaizdo įkėlimo pavadinimą. Kai tai padarysite, turėsite nurodyti naujojo vaizdo plotį ir aukštį bei pasirinktą išvesties vietą, kurioje norite jį išsaugoti. Įsitikinkite, kad visa pateikta informacija yra teisinga, išskyrus tai, kad biblioteka jos nepriima ir daro išimtį.

Pakeiskite vaizdo dydį naudodami 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;
}
    

Apkarpykite, apverskite, konvertuokite arba pasukite vaizdus naudodami C API

LibGD biblioteka suteikė visišką palaikymą programiniam vaizdų apkarpymui ir apvertimui naudojant C komandas. Bibliotekoje yra kelios vaizdo apvertimo funkcijos, pvz., vaizdo apvertimas horizontaliai arba vertikaliai arba abiem. Lygiai taip pat, kaip vartymą, taip pat galite lengvai pasukti pagal savo poreikius. Baigę galėsite lengvai išsaugoti vaizdus. Ji taip pat palaiko PNG ir JPEG vaizdų konvertavimą į kitus palaikomus failų formatus.

Konvertuokite PNG vaizdą į AVIF naudodami 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;
}

Vaizdas įkeliamas iš buferio atmintyje

Atvirojo kodo biblioteka LibGD leidžia programinės įrangos kūrėjams įkelti visą vaizdą į buferį savo C programose. Įkėlus vaizdą kūrėjai gali lengvai atlikti įvairias operacijas su vaizdu, pavyzdžiui, nuskaityti vaizdą iš buferio, modifikuoti vaizdą, išsaugoti vaizdą tam tikroje vietoje ir pan. Baigę nepamirškite atlaisvinti buferio su įprastomis atminties valdymo funkcijomis.

 Lietuvių