LibGD
Atvirojo kodo C biblioteka, skirta išplėstiniam vaizdo apdorojimui
Nemokama C API, leidžianti kūrėjams greitai piešti vaizdus, pridėti linijų, lankų, teksto, kelių spalvų ir įrašyti rezultatą kaip PNG arba JPEG failą.
Skaitmeniniai vaizdai visada pritraukia daugiau lankytojų nei paprastas tekstas. Nuotrauka yra verta tūkstančio žodžių. Jie gali pritraukti 94 % daugiau peržiūrų ir sudominti daugiau lankytojų. Visada vaisingiau ir patogiau siųsti pranešimus naudojant vaizdus. Atvirojo kodo biblioteka LibGD leidžia programuotojams greitai piešti vaizdus, pridėti linijas, lankus, tekstą, kelias spalvas ir įrašyti rezultatą kaip PNG arba JPEG failą.
LibGD yra galinga grafikos biblioteka, kuri padeda programinės įrangos kūrėjams dinamiškai generuoti ir valdyti vaizdus savo C programose. Biblioteka gali skaityti ir rašyti daugybę skirtingų vaizdo formatų, tokių kaip BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM ir daug daugiau. Biblioteka LibGD dažniausiai naudojama kuriant svetaines, bet taip pat gali būti naudojama su bet kokia atskira programa. Bibliotekoje yra keletas svarbių vaizdų kūrimo ir manipuliavimo funkcijų, pvz., diagramų, grafikos, miniatiūrų ir daugelio kitų dalykų generavimas.
Darbo su LibGD pradžia
Rekomenduojamas būdas įdiegti LibGD yra naudoti CMake. Norėdami sklandžiai įdiegti, naudokite šią komandą
Įdiekite „LibGD“ per „GitHub“.
$ make install
Klonuokite naujausius šaltinius naudodami šią komandą
Įdiekite „LibGD“ per „GitHub“.
$ git https://github.com/libgd/libgd.git
Generuokite ir keiskite vaizdus naudodami C
LibGD biblioteka suteikia galimybę lengvai kurti ir manipuliuoti vaizdais. Tai leidžia kurti vaizdus BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM failų formatais, naudojant tik kelias C kodo eilutes. Viena puiki bibliotekos savybė yra ta, kad ji leidžia kurti vaizdus skrendant. Biblioteka garsėja tuo, kad kuria vaizdus, kuriuos galima naudoti tinklalapiuose. Tai leidžia programiškai sukurti vaizdą, jį nuspalvinti, piešti ir lengvai išsaugoti diske.
Generuokite ir keiskite vaizdus naudodami 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);
Vaizdo dydžio keitimas naudojant C biblioteką
Atvirojo kodo LibGD biblioteka leidžia kompiuterių programuotojams greitai pakeisti savo vaizdų dydį naudodami C komandas savo programose. Norėdami pradėti, turite pateikti visą kelią ir vaizdo įkėlimo pavadinimą. Kai tai padarysite, turėsite nurodyti naujojo vaizdo plotį ir aukštį bei pasirinktą išvesties vietą, kurioje norite jį išsaugoti. Įsitikinkite, kad visa pateikta informacija yra teisinga, išskyrus tai, kad biblioteka jos nepriima ir daro išimtį.
Pakeiskite vaizdo dydį naudodami 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;
}
Apkarpykite, apverskite, konvertuokite arba pasukite vaizdus naudodami C API
LibGD biblioteka suteikė visišką palaikymą programiniam vaizdų apkarpymui ir apvertimui naudojant C komandas. Bibliotekoje yra kelios vaizdo apvertimo funkcijos, pvz., vaizdo apvertimas horizontaliai arba vertikaliai arba abiem. Lygiai taip pat, kaip vartymą, taip pat galite lengvai pasukti pagal savo poreikius. Baigę galėsite lengvai išsaugoti vaizdus. Ji taip pat palaiko PNG ir JPEG vaizdų konvertavimą į kitus palaikomus failų formatus.
Konvertuokite PNG vaizdą į AVIF naudodami 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;
}
Vaizdas įkeliamas iš buferio atmintyje
Atvirojo kodo biblioteka LibGD leidžia programinės įrangos kūrėjams įkelti visą vaizdą į buferį savo C programose. Įkėlus vaizdą kūrėjai gali lengvai atlikti įvairias operacijas su vaizdu, pavyzdžiui, nuskaityti vaizdą iš buferio, modifikuoti vaizdą, išsaugoti vaizdą tam tikroje vietoje ir pan. Baigę nepamirškite atlaisvinti buferio su įprastomis atminties valdymo funkcijomis.