![](https://products-qa.fileformat.com/lv/image/c/libgd/header-image.png)
LibGD
Atvērtā pirmkoda C bibliotēka uzlabotai attēlu apstrādei
Bezmaksas C API, kas ļauj izstrādātājiem ātri zīmēt attēlus, pievienot līnijas, lokus, tekstu, vairākas krāsas un izrakstīt rezultātu PNG vai JPEG failā.
Digitālie attēli vienmēr piesaista vairāk apmeklētāju nekā vienkāršs teksts. Attēls ir tūkstoš vārdu vērts. Tie spēj piesaistīt par 94% vairāk skatījumu un piesaistīt vairāk apmeklētāju. Vienmēr ir auglīgāk un ērtāk nosūtīt ziņojumus, izmantojot attēlus. Atvērtā pirmkoda bibliotēka LibGD ļauj programmētājiem ātri zīmēt attēlus, pievienot līnijas, lokus, tekstu, vairākas krāsas un izrakstīt rezultātu kā PNG vai JPEG failu.
LibGD ir jaudīga grafikas bibliotēka, kas palīdz programmatūras izstrādātājiem dinamiski ģenerēt un pārvaldīt attēlus savās C lietojumprogrammās. Bibliotēka var lasīt un rakstīt dažādus attēlu formātus, piemēram, BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM un daudz ko citu. Bibliotēka LibGD parasti tiek izmantota vietņu izstrādei, taču to var izmantot arī ar jebkuru atsevišķu lietojumprogrammu. Bibliotēkā ir iekļautas vairākas svarīgas funkcijas attēlu izveidei un apstrādei, piemēram, diagrammu, grafiku, sīktēlu ģenerēšana un lielākā daļa visu citu.
Darba sākšana ar LibGD
Ieteicamais LibGD instalēšanas veids ir CMake. Lūdzu, izmantojiet šo komandu vienmērīgai instalēšanai
Instalējiet LibGD, izmantojot GitHub.
$ make install
Klonējiet jaunākos avotus, izmantojot šo komandu
Instalējiet LibGD, izmantojot GitHub.
$ git https://github.com/libgd/libgd.git
Ģenerējiet un modificējiet attēlus, izmantojot C
LibGD bibliotēka nodrošina iespēju viegli izveidot un apstrādāt attēlus. Tas ļauj izveidot attēlus BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM failu formātos tikai ar pāris C koda rindiņām. Viena lieliska bibliotēkas iezīme ir tā, ka tā ļauj izveidot attēlus lidojuma laikā. Bibliotēka ir pazīstama ar to, ka lidojumā rada attēlus, kurus var izmantot tīmekļa lapās. Tas ļauj programmatiski izveidot attēlu, izkrāsot to, zīmēt uz tā un viegli saglabāt to diskā.
Ģenerējiet un modificējiet attēlus, izmantojot 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);
Attēla izmēru maiņa, izmantojot C bibliotēku
Atvērtā koda LibGD bibliotēka ļauj datorprogrammētājiem lidojuma laikā mainīt attēlu izmērus, izmantojot C komandas savās lietojumprogrammās. Lai sāktu, jums ir jānorāda pilns ielādes attēla ceļš un nosaukums. Kad tas ir izdarīts, jums ir jānorāda jaunā attēla platums un augstums, kā arī jūsu izvēlētā izvades vieta, kur vēlaties to saglabāt. Lūdzu, pārliecinieties, vai visa sniegtā informācija ir pareiza, izņemot to, ka bibliotēka to nepieņem un izņēmums ir.
Mainiet attēla izmēru, izmantojot 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;
}
Apgrieziet, apgrieziet, konvertējiet vai pagrieziet attēlus, izmantojot C API
LibGD bibliotēka ir nodrošinājusi pilnīgu atbalstu programmatiskai attēlu apgriešanai un apgriešanai, izmantojot C komandas. Bibliotēka ir nodrošinājusi vairākas funkcijas attēla apvēršanai, piemēram, attēla apgriešana horizontāli vai vertikāli, kā arī abas. Tāpat kā apgriešana, jūs varat arī viegli pagriezt to atbilstoši savām vajadzībām. Kad tas ir izdarīts, varat viegli saglabāt attēlus. Tas arī nodrošina atbalstu PNG un JPEG attēlu konvertēšanai citos atbalstītos failu formātos.
Konvertējiet PNG attēlu uz AVIF, izmantojot 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;
}
Attēla ielāde no bufera atmiņā
Atvērtā koda bibliotēka LibGD ļauj programmatūras izstrādātājiem ielādēt visu attēlu, lai to bufera atmiņā savās C lietojumprogrammās. Kad attēls ir ielādēts, izstrādātāji var viegli veikt dažādas darbības ar attēlu, piemēram, nolasīt attēlu no bufera, pārveidot attēlu, saglabāt attēlu noteiktā vietā utt. Kad tas ir izdarīts, lūdzu, atcerieties atbrīvot buferi, izmantojot parastās atmiņas pārvaldības funkcijas.