LibGD
Avoimen lähdekoodin C-kirjasto edistyneeseen kuvankäsittelyyn
Ilmainen C API, jonka avulla kehittäjät voivat piirtää nopeasti kuvia, lisätä viivoja, kaaria, tekstiä, useita värejä ja kirjoittaa tuloksen PNG- tai JPEG-tiedostona.
Digikuvat houkuttelevat aina enemmän kävijöitä kuin pelkkä teksti. Kuva kertoo enemmän kuin tuhat sanaa. Heillä on valta houkutella 94 % enemmän katselukertoja ja houkutella enemmän kävijöitä. On aina hedelmällisempää ja kätevämpää välittää viestisi kuvien avulla. Avoimen lähdekoodin LibGD-kirjaston avulla ohjelmoijat voivat nopeasti piirtää kuvia, lisätä viivoja, kaaria, tekstiä, useita värejä ja kirjoittaa tuloksen PNG- tai JPEG-tiedostona.
LibGD on tehokas grafiikkakirjasto, joka auttaa ohjelmistokehittäjiä luomaan ja hallitsemaan dynaamisesti kuvia C-sovellustensa sisällä. Kirjasto voi lukea ja kirjoittaa monia erilaisia kuvamuotoja, kuten BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM ja paljon muuta. LibGD-kirjastoa käytetään yleisesti verkkosivustojen kehittämiseen, mutta sitä voidaan käyttää myös minkä tahansa erillisen sovelluksen kanssa. Kirjastossa on useita tärkeitä ominaisuuksia kuvien luomiseen ja käsittelyyn, kuten kaavioiden, grafiikan, pikkukuvien ja useimpien muiden luominen lennossa.
LibGD:n käytön aloittaminen
Suositeltu tapa asentaa LibGD on CMake. Käytä seuraavaa komentoa sujuvaan asennukseen
Asenna LibGD GitHubin kautta.
$ make install
Kloonaa uusimmat lähteet seuraavalla komennolla
Asenna LibGD GitHubin kautta.
$ git https://github.com/libgd/libgd.git
Luo ja muokkaa kuvia C:n kautta
LibGD-kirjasto tarjoaa mahdollisuuden luoda ja käsitellä kuvia helposti. Se mahdollistaa kuvien luomisen BMP-, GIF-, TGA-, WBMP-, JPEG-, PNG-, TIFF-, WebP-, XPM-tiedostomuodoissa vain muutamalla rivillä C-koodia. Yksi kirjaston hieno ominaisuus on, että sen avulla voit luoda kuvia lennossa. Kirjasto tunnetaan lennossa kuvien luomisesta, joita voidaan käyttää web-sivuilla. Sen avulla voit luoda ohjelmallisesti kuvan, värittää sen, piirtää siihen ja tallentaa sen levylle helposti.
Luo ja muokkaa kuvia C API:n kautta
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);
Kuvan koon muuttaminen C-kirjaston kautta
Avoimen lähdekoodin LibGD-kirjaston avulla tietokoneohjelmoijat voivat muuttaa kuviensa kokoa lennossa käyttämällä C-komentoja sovellusten sisällä. Aloittaaksesi sinun on annettava ladattavan kuvan täydellinen polku ja nimi. Kun se on tehty, sinun on annettava uuden kuvan leveys ja korkeus sekä valitsemasi tulostussijainti, johon haluat tallentaa sen. Varmista, että kaikki annetut tiedot ovat oikein, paitsi että kirjasto ei hyväksy niitä ja tekee poikkeuksen.
Muuta kuvan kokoa C API:n kautta
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;
}
Rajaa, käännä, muunna tai kierrä kuvia C API:n kautta
LibGD-kirjasto on tarjonnut täydellisen tuen kuvien ohjelmalliseen rajaamiseen ja kääntämiseen C-komentojen avulla. Kirjastossa on useita toimintoja kuvan kääntämiseen, kuten kuvan kääntäminen vaaka- tai pystysuunnassa sekä molemmissa. Samoin kuin kääntämisen, voit myös helposti kääntää sitä omien tarpeidesi mukaan. Kun olet valmis, voit tallentaa kuvat helposti. Se tukee myös PNG- ja JPEG-kuvien muuntamista muihin tuettuihin tiedostomuotoihin.
Muunna PNG-kuva AVIF:ksi C API:n kautta
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;
}
Kuvaa ladataan muistissa olevasta puskurista
Avoimen lähdekoodin kirjaston LibGD avulla ohjelmistokehittäjät voivat ladata koko kuvan puskuroidakseen muistiin omien C-sovellustensa sisällä. Kun kuva on ladattu, kehittäjät voivat helposti suorittaa kuvalle erilaisia toimintoja, kuten lukea kuvan puskurista, muokata kuvaa, tallentaa kuvan tiettyyn paikkaan ja niin edelleen. Kun olet valmis, muista vapauttaa puskuri tavallisilla muistinhallintatoiminnoilla.