LibGD
Бібліотека C з відкритим вихідним кодом для розширеної обробки зображень
Безкоштовний C API, який дозволяє розробникам швидко малювати зображення, додавати лінії, дуги, текст, кілька кольорів і записувати результат як файл PNG або JPEG.
Цифрові зображення завжди приваблюють більше відвідувачів, ніж простий текст. Малюнок вартий тисячі слів. Вони можуть залучити на 94% більше переглядів і залучити більше відвідувачів. Завжди ефективніше та зручніше доставляти повідомлення за допомогою зображень. Бібліотека LibGD з відкритим вихідним кодом дозволяє програмістам швидко малювати зображення, додавати лінії, дуги, текст, кілька кольорів і записувати результат у файл PNG або JPEG.
LibGD — це потужна графічна бібліотека, яка допомагає розробникам програмного забезпечення динамічно генерувати та керувати зображеннями у своїх програмах C. Бібліотека може читати та записувати багато різних форматів зображень, таких як BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM та багато іншого. Бібліотека LibGD зазвичай використовується для розробки веб-сайтів, але також може використовуватися з будь-якою окремою програмою. Бібліотека включає кілька важливих функцій для створення зображень і обробки зображень, таких як генерація діаграм, графіки, ескізів і будь-чого іншого на льоту.
Початок роботи з 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. Після завантаження зображення розробники можуть легко виконувати різні операції над зображенням, такі як читання зображення з буфера, зміна зображення, збереження зображення в певному місці тощо. Після цього не забудьте звільнити буфер за допомогою звичайних функцій керування пам’яттю.