1. Prodotti
  2.   Immagine
  3.   LibGD

LibGD

 
 

Libreria C open source per l'elaborazione avanzata delle immagini

C API gratuita che consente agli sviluppatori di disegnare rapidamente immagini, aggiungere linee, archi, testo, più colori e scrivere il risultato come file PNG o JPEG.

Le immagini digitali attirano sempre più visitatori del semplice testo. Un'immagine vale più di mille parole. Hanno il potere di attirare il 94% di visualizzazioni in più e di coinvolgere più visitatori. È sempre più fruttuoso e conveniente recapitare i tuoi messaggi utilizzando le immagini. La libreria open source LibGD consente ai programmatori di disegnare rapidamente immagini, aggiungere linee, archi, testo, più colori e scrivere il risultato come file PNG o JPEG.

LibGD è una potente libreria grafica che aiuta gli sviluppatori di software a generare e gestire dinamicamente le immagini all'interno delle loro applicazioni C. La libreria può leggere e scrivere molti formati di immagine diversi come BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM e molti altri. La libreria LibGD è comunemente usata per lo sviluppo di siti web ma può essere utilizzata anche con qualsiasi applicazione standalone. La libreria ha incluso diverse funzionalità importanti per la creazione e la manipolazione di immagini come la generazione di grafici, grafica, miniature e quasi tutto il resto, al volo.

Previous Next

Iniziare con LibGD

Il modo consigliato per installare LibGD è usare CMake. Utilizzare il comando seguente per installazioni senza problemi

Installa LibGD tramite GitHub.

$ make install 

Clona le ultime fonti usando il comando seguente

Installa LibGD tramite GitHub.

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

Genera e modifica immagini tramite C

La libreria LibGD offre la possibilità di creare e manipolare immagini con facilità. Consente di utilizzare la creazione di immagini nei formati di file BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM con solo un paio di righe di codice C. Una grande caratteristica della libreria è che ti consente di creare immagini al volo. La libreria è nota per la creazione di immagini al volo che possono essere utilizzate nelle pagine Web. Ti consente di creare un'immagine a livello di codice, colorarla, disegnarci sopra e salvarla su disco con facilità.

Generare e modificare le immagini 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);
    

Ridimensionamento dell'immagine tramite la libreria C

La libreria LibGD open source consente ai programmatori di computer di ridimensionare le proprie immagini al volo utilizzando i comandi C all'interno delle loro applicazioni. Per iniziare è necessario fornire il percorso completo e il nome dell'immagine per il caricamento. Una volta terminato, devi fornire la larghezza e l'altezza della tua nuova immagine e la posizione di output di tua scelta in cui vuoi salvarla. Assicurati che tutte le informazioni fornite siano corrette a parte la libreria che non le accetta e genera un'eccezione.

Ridimensionare l'immagine tramite 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;
}
    

Crop, Flip, Convertire o Ruotare le immagini tramite C API

La libreria LibGD ha fornito un supporto completo per ritaglio e ritaglio programmatico delle immagini utilizzando comandi C. La libreria ha fornito molteplici funzioni per capovolgere l'immagine, come ad esempio capovolgere l'immagine orizzontalmente o verticalmente e entrambi. Lo stesso come flipping si può anche facilmente ruotare secondo le proprie esigenze. Una volta fatto è possibile salvare le immagini con facilità. Esso fornisce anche il supporto per la conversione di immagini NG e JPEG in altri formati di file supportati.

Convertire NG Image in AIF 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;
}

Caricamento immagine dal buffer in memoria

La libreria open source LibGD consente agli sviluppatori di software di caricare un'intera immagine da memorizzare nel buffer all'interno delle proprie applicazioni C. Una volta caricata l'immagine, gli sviluppatori possono eseguire facilmente diverse operazioni sull'immagine, come leggere l'immagine dal buffer, modificare l'immagine, salvare l'immagine in una posizione particolare e così via. Una volta fatto ricordarsi di liberare il buffer con le normali funzioni di gestione della memoria.

 Italiano