1. Produtos
  2.   Imagem
  3.   LibGD

LibGD

 
 

Biblioteca C de código aberto para processamento avançado de imagens

API C  gratuita que permite que os desenvolvedores desenhem imagens rapidamente, adicionem linhas, arcos, texto, várias cores e escrevam o resultado como um arquivo PNG ou JPEG.

Imagens digitais sempre atraem mais visitantes do que texto simples. Uma imagem vale mais que mil palavras. Eles têm o poder de atrair 94% mais visualizações e engajar mais visitantes. É sempre mais proveitoso e conveniente entregar suas mensagens usando imagens. A biblioteca de código aberto LibGD permite que os programadores desenhem imagens rapidamente, adicionem linhas, arcos, texto, várias cores e escrevam o resultado como um arquivo PNG ou JPEG.

LibGD é uma poderosa biblioteca gráfica que ajuda os desenvolvedores de software a gerar e gerenciar dinamicamente imagens dentro de seus aplicativos C. A biblioteca pode ler e gravar muitos formatos de imagem diferentes, como BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM e muito mais. A biblioteca LibGD é comumente usada para desenvolvimento de sites, mas também pode ser usada com qualquer aplicativo independente. A biblioteca incluiu vários recursos importantes para criação e manipulação de imagens, como geração de gráficos, gráficos, miniaturas e quase tudo mais, em tempo real.

Previous Next

Introdução ao LibGD

A maneira recomendada de instalar o LibGD é usando o CMake. Por favor, use o seguinte comando para instalações suaves

Instale o LibGD via GitHub.

$ make install 

Clone as fontes mais recentes usando o seguinte comando

Instale o LibGD via GitHub.

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

Gerar e modificar imagens via C

A biblioteca LibGD oferece a capacidade de criar e manipular imagens com facilidade. Permite usar a criação de imagens nos formatos de arquivo BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM com apenas algumas linhas de código C. Um ótimo recurso da biblioteca é que ela permite criar imagens em tempo real. A biblioteca é conhecida por criar imagens em tempo real que podem ser usadas em páginas da Web. Ele permite criar uma imagem programaticamente, colori-la, desenhá-la e salvá-la em disco com facilidade.

Gerar & Modificar Imagens 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);
    

Redimensionamento de imagem via biblioteca C

A biblioteca de código aberto LibGD permite que os programadores de computador redimensionem suas imagens em tempo real usando comandos C dentro de seus aplicativos. Para começar, você precisa fornecer o caminho completo e o nome da imagem para carregamento. Uma vez feito isso, você precisa fornecer a largura e a altura da sua nova imagem e o local de saída de sua escolha onde deseja salvá-la. Certifique-se de que todas as informações fornecidas estão corretas, exceto que a biblioteca não as aceita e lança uma exceção.

Redimensionar imagem via 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;
}
    

Corte, Flip, Converta ou Gire Imagens via C API

A biblioteca de LibGD suporte completo para cortar e cortar imagens programaticamente usando comandos C. A biblioteca forneceu várias para reproduzir a imagem, tais como reproduzir a imagem horizontalmente ou verticalmente, bem como ambos. O mesmo que você também pode girar facilmente de acordo com suas necessidades. Uma vez feito você pode salvar as imagens com. Ele também suporte para conversão de imagens NG e JPEG para outros de arquivos suportados.

Converter NG Imagem para 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;
}

Carregamento de imagem do buffer na memória

A biblioteca de código aberto LibGD permite que os desenvolvedores de software carreguem uma imagem inteira para armazenar em buffer na memória dentro de seus próprios aplicativos C. Depois que a imagem é carregada, os desenvolvedores podem facilmente realizar diferentes operações na imagem, como ler a imagem do buffer, modificar a imagem, salvar a imagem em um local específico e assim por diante. Uma vez feito, lembre-se de liberar o buffer com funções normais de gerenciamento de memória.

 Português