LibGD
Open Source C Library pro pokročilé zpracování obrazu
Bezplatné C API, které umožňuje vývojářům rychle kreslit obrázky, přidávat čáry, oblouky, text, více barev a zapisovat výsledek jako soubor PNG nebo JPEG.
Digitální obrázky vždy přitahují více návštěvníků než jednoduchý text. Obrázek vydá za tisíc slov. Mají schopnost přilákat o 94 % více zhlédnutí a zaujmout více návštěvníků. Vždy je plodnější a pohodlnější doručovat zprávy pomocí obrázků. Open source knihovna LibGD umožňuje programátorům rychle kreslit obrázky, přidávat čáry, oblouky, text, více barev a zapisovat výsledek jako soubor PNG nebo JPEG.
LibGD je výkonná grafická knihovna, která pomáhá vývojářům softwaru dynamicky generovat a spravovat obrázky v jejich aplikacích C. Knihovna umí číst a zapisovat mnoho různých obrazových formátů, jako jsou BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM a mnoho dalších. Knihovna LibGD se běžně používá pro vývoj webových stránek, ale může být také použita s jakoukoli samostatnou aplikací. Knihovna obsahuje několik důležitých funkcí pro vytváření obrázků a manipulaci s nimi, jako je generování grafů, grafiky, náhledů a většiny čehokoli jiného, za běhu.
Začínáme s LibGD
Doporučený způsob instalace LibGD je použití CMake. Pro bezproblémovou instalaci použijte prosím následující příkaz
Nainstalujte LibGD přes GitHub.
$ make install
Naklonujte nejnovější zdroje pomocí následujícího příkazu
Nainstalujte LibGD přes GitHub.
$ git https://github.com/libgd/libgd.git
Vytvářejte a upravujte obrázky pomocí C
Knihovna LibGD poskytuje možnost snadno vytvářet a manipulovat s obrázky. Umožňuje vytvářet obrázky ve formátech BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM pomocí pouhých několika řádků kódu C. Jedna skvělá funkce knihovny je, že vám umožňuje vytvářet obrázky za běhu. Knihovna je známá pro vytváření obrázků za chodu, které lze použít na webových stránkách. Umožňuje vám programově vytvořit obrázek, vybarvit jej, kreslit na něj a snadno jej uložit na disk.
Generujte a upravujte obrázky přes 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);
Změna velikosti obrázku prostřednictvím knihovny C
Knihovna LibGD s otevřeným zdrojovým kódem umožňuje počítačovým programátorům měnit velikost obrázků za běhu pomocí příkazů C v jejich aplikacích. Chcete-li začít, musíte zadat úplnou cestu a název obrázku pro načtení. Jakmile to uděláte, musíte zadat šířku a výšku nového obrázku a umístění výstupu podle vašeho výběru, kam jej chcete uložit. Ujistěte se prosím, že všechny poskytnuté informace jsou správné, kromě toho, že je knihovna nepřijme a vyvolá výjimku.
Změna velikosti obrázku přes 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;
}
Oříznout, převrátit, převést nebo otočit obrázky přes C API
Knihovna LibGD poskytla kompletní podporu pro programové ořezávání a převracení obrázků pomocí příkazů C. Knihovna poskytuje několik funkcí pro převrácení obrázku, jako je převrácení obrázku vodorovně nebo svisle, stejně jako obojí. Stejně jako překlápění jej můžete také snadno otočit podle vlastních potřeb. Po dokončení můžete obrázky snadno uložit. Poskytuje také podporu pro převod obrázků PNG a JPEG do jiných podporovaných formátů souborů.
Převeďte obrázek PNG na AVIF přes 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;
}
Načítání obrázku z vyrovnávací paměti v paměti
Knihovna s otevřeným zdrojovým kódem LibGD umožňuje vývojářům softwaru načíst celý obraz do vyrovnávací paměti v jejich vlastních aplikacích C. Jakmile je obrázek načten, vývojáři mohou s obrázkem snadno provádět různé operace, jako je čtení obrázku z vyrovnávací paměti, úprava obrázku, uložení obrázku na určité místo a tak dále. Po dokončení nezapomeňte uvolnit vyrovnávací paměť běžnými funkcemi správy paměti.