1. Produkti
  2.   Attēls
  3.   LibGD

LibGD

 
 

Atvērtā pirmkoda C bibliotēka uzlabotai attēlu apstrādei

Bezmaksas C API, kas ļauj izstrādātājiem ātri zīmēt attēlus, pievienot līnijas, lokus, tekstu, vairākas krāsas un izrakstīt rezultātu PNG vai JPEG failā.

Digitālie attēli vienmēr piesaista vairāk apmeklētāju nekā vienkāršs teksts. Attēls ir tūkstoš vārdu vērts. Tie spēj piesaistīt par 94% vairāk skatījumu un piesaistīt vairāk apmeklētāju. Vienmēr ir auglīgāk un ērtāk nosūtīt ziņojumus, izmantojot attēlus. Atvērtā pirmkoda bibliotēka LibGD ļauj programmētājiem ātri zīmēt attēlus, pievienot līnijas, lokus, tekstu, vairākas krāsas un izrakstīt rezultātu kā PNG vai JPEG failu.

LibGD ir jaudīga grafikas bibliotēka, kas palīdz programmatūras izstrādātājiem dinamiski ģenerēt un pārvaldīt attēlus savās C lietojumprogrammās. Bibliotēka var lasīt un rakstīt dažādus attēlu formātus, piemēram, BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM un daudz ko citu. Bibliotēka LibGD parasti tiek izmantota vietņu izstrādei, taču to var izmantot arī ar jebkuru atsevišķu lietojumprogrammu. Bibliotēkā ir iekļautas vairākas svarīgas funkcijas attēlu izveidei un apstrādei, piemēram, diagrammu, grafiku, sīktēlu ģenerēšana un lielākā daļa visu citu.

Previous Next

Darba sākšana ar LibGD

Ieteicamais LibGD instalēšanas veids ir CMake. Lūdzu, izmantojiet šo komandu vienmērīgai instalēšanai

Instalējiet LibGD, izmantojot GitHub.

$ make install 

Klonējiet jaunākos avotus, izmantojot šo komandu

Instalējiet LibGD, izmantojot GitHub.

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

Ģenerējiet un modificējiet attēlus, izmantojot C

LibGD bibliotēka nodrošina iespēju viegli izveidot un apstrādāt attēlus. Tas ļauj izveidot attēlus BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM failu formātos tikai ar pāris C koda rindiņām. Viena lieliska bibliotēkas iezīme ir tā, ka tā ļauj izveidot attēlus lidojuma laikā. Bibliotēka ir pazīstama ar to, ka lidojumā rada attēlus, kurus var izmantot tīmekļa lapās. Tas ļauj programmatiski izveidot attēlu, izkrāsot to, zīmēt uz tā un viegli saglabāt to diskā.

Ģenerējiet un modificējiet attēlus, izmantojot 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);
    

Attēla izmēru maiņa, izmantojot C bibliotēku

Atvērtā koda LibGD bibliotēka ļauj datorprogrammētājiem lidojuma laikā mainīt attēlu izmērus, izmantojot C komandas savās lietojumprogrammās. Lai sāktu, jums ir jānorāda pilns ielādes attēla ceļš un nosaukums. Kad tas ir izdarīts, jums ir jānorāda jaunā attēla platums un augstums, kā arī jūsu izvēlētā izvades vieta, kur vēlaties to saglabāt. Lūdzu, pārliecinieties, vai visa sniegtā informācija ir pareiza, izņemot to, ka bibliotēka to nepieņem un izņēmums ir.

Mainiet attēla izmēru, izmantojot 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;
}
    

Apgrieziet, apgrieziet, konvertējiet vai pagrieziet attēlus, izmantojot C API

LibGD bibliotēka ir nodrošinājusi pilnīgu atbalstu programmatiskai attēlu apgriešanai un apgriešanai, izmantojot C komandas. Bibliotēka ir nodrošinājusi vairākas funkcijas attēla apvēršanai, piemēram, attēla apgriešana horizontāli vai vertikāli, kā arī abas. Tāpat kā apgriešana, jūs varat arī viegli pagriezt to atbilstoši savām vajadzībām. Kad tas ir izdarīts, varat viegli saglabāt attēlus. Tas arī nodrošina atbalstu PNG un JPEG attēlu konvertēšanai citos atbalstītos failu formātos.

Konvertējiet PNG attēlu uz AVIF, izmantojot 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;
}

Attēla ielāde no bufera atmiņā

Atvērtā koda bibliotēka LibGD ļauj programmatūras izstrādātājiem ielādēt visu attēlu, lai to bufera atmiņā savās C lietojumprogrammās. Kad attēls ir ielādēts, izstrādātāji var viegli veikt dažādas darbības ar attēlu, piemēram, nolasīt attēlu no bufera, pārveidot attēlu, saglabāt attēlu noteiktā vietā utt. Kad tas ir izdarīts, lūdzu, atcerieties atbrīvot buferi, izmantojot parastās atmiņas pārvaldības funkcijas.

 Latviski