LibGD
Bibliotecă C open source pentru procesarea avansată a imaginilor
C API gratuit care le permite dezvoltatorilor să deseneze rapid imagini, să adauge linii, arce, text, mai multe culori și să scrie rezultatul ca fișier PNG sau JPEG.
Imaginile digitale atrag întotdeauna mai mulți vizitatori decât textul simplu. O imagine valorează cât o mie de cuvinte. Au puterea de a atrage cu 94% mai multe vizualizări și de a implica mai mulți vizitatori. Este întotdeauna mai fructuos și mai convenabil să vă livrați mesajele folosind imagini. Biblioteca open source LibGD permite programatorilor să deseneze rapid imagini, să adauge linii, arce, text, mai multe culori și să scrie rezultatul ca fișier PNG sau JPEG.
LibGD este o bibliotecă grafică puternică care îi ajută pe dezvoltatorii de software să genereze și să gestioneze în mod dinamic imagini în aplicațiile lor C. Biblioteca poate citi și scrie multe formate de imagine diferite, cum ar fi BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM și multe altele. Biblioteca LibGD este folosită în mod obișnuit pentru dezvoltarea site-urilor web, dar poate fi folosită și cu orice aplicație independentă. Biblioteca a inclus câteva caracteristici importante pentru crearea și manipularea imaginilor, cum ar fi generarea de diagrame, grafice, miniaturi și mai mult de orice altceva, din mers.
Noțiuni introductive cu LibGD
Modul recomandat de a instala LibGD este utilizarea CMake. Vă rugăm să utilizați următoarea comandă pentru instalări fără probleme
Instalați LibGD prin GitHub.
$ make install
Clonează cele mai recente surse utilizând următoarea comandă
Instalați LibGD prin GitHub.
$ git https://github.com/libgd/libgd.git
Generați și modificați imagini prin C
Biblioteca LibGD oferă capacitatea de a crea și manipula imagini cu ușurință. Permite crearea de imagini în formate de fișiere BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM cu doar câteva linii de cod C. O caracteristică excelentă a bibliotecii este că vă permite să creați imagini din mers. Biblioteca este cunoscută pentru crearea de imagini din mers care pot fi folosite pe paginile Web. Vă permite să creați în mod programatic o imagine, să o colorați, să desenați pe ea și să o salvați cu ușurință pe disc.
Generați și modificați imagini prin 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);
Redimensionarea imaginii prin C Library
Biblioteca open source LibGD le permite programatorilor de calculatoare să-și redimensioneze imaginile din mers folosind comenzile C din aplicațiile lor. Pentru a începe, trebuie să furnizați calea completă și numele imaginii pentru încărcare. Odată ce ați terminat, trebuie să furnizați lățimea și înălțimea noii imagini și locația de ieșire aleasă de dvs. unde doriți să o salvați. Vă rugăm să vă asigurați că toate informațiile furnizate sunt corecte, în afară de faptul că biblioteca nu le acceptă și face o excepție.
Redimensionați imaginea prin 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;
}
Decupați, răsturnați, convertiți sau rotiți imagini prin C API
Biblioteca LibGD a oferit suport complet pentru decuparea și răsturnarea programatică a imaginilor folosind comenzile C. Biblioteca a oferit mai multe funcții pentru răsturnarea imaginii, cum ar fi răsturnarea imaginii orizontal sau vertical, precum și ambele. La fel ca și răsturnarea, îl puteți roti cu ușurință în funcție de propriile nevoi. Odată terminat, puteți salva imaginile cu ușurință. De asemenea, oferă suport pentru conversia imaginilor PNG și JPEG în alte formate de fișiere acceptate.
Convertiți imaginea PNG în AVIF prin 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;
}
Încărcarea imaginii din tampon în memorie
Biblioteca cu sursă deschisă LibGD permite dezvoltatorilor de software să încarce o imagine întreagă pentru a stoca în memorie în interiorul propriilor aplicații C. Odată ce imaginea este încărcată, dezvoltatorii pot efectua cu ușurință diferite operații asupra imaginii, cum ar fi citirea imaginii din buffer, modificarea imaginii, salvarea imaginii într-o anumită locație și așa mai departe. După ce ați terminat, vă rugăm să nu uitați să eliberați tamponul cu funcțiile normale de gestionare a memoriei.