LibGD

 
 

C библиотека с отворен код за разширена обработка на изображения

Безплатен C  API, който позволява на разработчиците бързо да рисуват изображения, да добавят линии, дъги, текст, множество цветове и да записват резултата като PNG или JPEG файл.

Цифровите изображения винаги привличат повече посетители от простия текст. Една снимка струва повече от хиляда думи. Те имат силата да привлекат 94% повече гледания и да ангажират повече посетители. Винаги е по-ползотворно и удобно да доставяте съобщенията си с помощта на изображения. Библиотеката с отворен код LibGD позволява на програмистите бързо да рисуват изображения, да добавят линии, дъги, текст, множество цветове и да записват резултата като PNG или JPEG файл.

LibGD е мощна графична библиотека, която помага на разработчиците на софтуер динамично да генерират и управляват изображения в своите C приложения. Библиотеката може да чете и записва много различни формати на изображения като BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM и много други. Библиотеката LibGD обикновено се използва за разработка на уебсайтове, но може да се използва и с всяко самостоятелно приложение. Библиотеката включва няколко важни функции за създаване и манипулиране на изображения, като генериране на диаграми, графики, миниатюри и почти всичко друго, в движение.

Previous Next

Първи стъпки с LibGD

Препоръчителният начин за инсталиране на LibGD е използването на CMake. Моля, използвайте следната команда за плавни инсталации

Инсталирайте LibGD чрез GitHub.

$ make install 

Клонирайте най-новите източници, като използвате следната команда

Инсталирайте LibGD чрез GitHub.

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

Генерирайте и променяйте изображения чрез C

Библиотеката LibGD предоставя възможност за лесно създаване и манипулиране на изображения. Позволява използването на създаване на изображения във файлови формати BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM само с няколко реда C код. Една страхотна характеристика на библиотеката е, че ви позволява да създавате изображения в движение. Библиотеката е известна със създаването на изображения в движение, които могат да се използват на уеб страници. Той ви позволява програмно да създадете изображение, да го оцветите, да рисувате върху него и да го запишете на диск с лекота.

Генерирайте и променяйте изображения чрез 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);
    

Преоразмеряване на изображение чрез C библиотека

Библиотеката LibGD с отворен код позволява на компютърните програмисти да преоразмеряват изображенията си в движение, като използват C команди в своите приложения. За да започнете, трябва да предоставите пълния път и име на изображението за зареждане. След като го направите, трябва да предоставите ширината и височината на вашето ново изображение и изходното местоположение по ваш избор, където искате да го запазите. Моля, уверете се, че цялата предоставена информация е правилна, освен че библиотеката не я приема и хвърля изключение.

Преоразмерете изображението чрез 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;
}
    

Изрязване, обръщане, конвертиране или завъртане на изображения чрез C API

Библиотеката LibGD предоставя пълна поддръжка за програмно изрязване и обръщане на изображения с помощта на C команди. Библиотеката предоставя множество функции за обръщане на изображението, като хоризонтално или вертикално обръщане на изображението, както и двете. Също като обръщането, можете също така лесно да го завъртите според собствените си нужди. След като сте готови, можете да запазите изображенията с лекота. Той също така осигурява поддръжка за конвертиране на PNG и JPEG изображения в други поддържани файлови формати.

Конвертирайте PNG изображение в AVIF чрез 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;
}

Зареждане на изображение от буфер в паметта

Библиотеката с отворен код LibGD позволява на разработчиците на софтуер да заредят цяло изображение, което да буферират в паметта в техните собствени C приложения. След като изображението бъде заредено, разработчиците могат лесно да извършват различни операции върху изображението, като четене на изображението от буфера, модифициране на изображението, запазване на изображението на определено място и т.н. След като приключите, не забравяйте да освободите буфера с нормални функции за управление на паметта.

 Български