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. Після завантаження зображення розробники можуть легко виконувати різні операції над зображенням, такі як читання зображення з буфера, зміна зображення, збереження зображення в певному місці тощо. Після цього не забудьте звільнити буфер за допомогою звичайних функцій керування пам’яттю.

 Українська