LibGD
Gelişmiş Görüntü İşleme için Açık Kaynak C Kitaplığı
Geliştiricilerin hızla resim çizmesine, çizgiler, yaylar, metinler, birden çok renk eklemesine ve sonucu bir PNG veya JPEG dosyası olarak yazmasına olanak tanıyan ücretsiz C API.
Dijital görüntüler her zaman basit metinlerden daha fazla ziyaretçi çeker. Bir resim bin kelime değerinde bir olup. %94 daha fazla görüntüleme çekme ve daha fazla ziyaretçi çekme gücüne sahipler. Mesajlarınızı resim kullanarak iletmek her zaman daha verimli ve kullanışlıdır. Açık kaynak kitaplığı LibGD, programcıların hızlı bir şekilde resim çizmesine, çizgiler, yaylar, metinler, çoklu renkler eklemesine ve sonucu bir PNG veya JPEG dosyası olarak yazmasına olanak tanır.
LibGD, yazılım geliştiricilerin C uygulamalarında dinamik olarak görüntü oluşturmasına ve yönetmesine yardımcı olan güçlü bir grafik kitaplığıdır. Kitaplık, BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM ve çok daha fazlası gibi birçok farklı görüntü formatını okuyabilir ve yazabilir. LibGD kitaplığı, web sitesi geliştirme için yaygın olarak kullanılır, ancak herhangi bir bağımsız uygulama ile de kullanılabilir. Kitaplık, anında grafikler, grafikler, küçük resimler ve diğer birçok şey oluşturma gibi görüntü oluşturma ve işleme için birkaç önemli özellik içeriyor.
LibGD'ye Başlarken
LibGD'yi kurmanın önerilen yolu CMake kullanmaktır. Sorunsuz kurulumlar için lütfen aşağıdaki komutu kullanın
GitHub aracılığıyla LibGD'yi yükleyin.
$ make install
Aşağıdaki komutu kullanarak en son kaynakları klonlayın
GitHub aracılığıyla LibGD'yi yükleyin.
$ git https://github.com/libgd/libgd.git
Görüntüleri C ile Oluşturun ve Değiştirin
LibGD kitaplığı, görüntüleri kolaylıkla oluşturma ve işleme yeteneği sağlar. Sadece birkaç satır C kodu ile BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM dosya formatlarında görüntülerin oluşturulmasını sağlar. Kitaplığın harika bir özelliği, anında görüntü oluşturmanıza izin vermesidir. Kitaplık, Web sayfalarında kullanılabilecek anında görüntüler oluşturmasıyla bilinir. Programlı olarak bir görüntü oluşturmanıza, renklendirmenize, üzerinde çizim yapmanıza ve kolaylıkla diske kaydetmenize olanak tanır.
Genrate & Modify Images via 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);
C Kitaplığı ile Görüntü Yeniden Boyutlandırma
Açık kaynaklı LibGD kitaplığı, bilgisayar programcılarının, uygulamalarının içindeki C komutlarını kullanarak görüntülerini anında yeniden boyutlandırmalarını sağlar. Başlamak için, yükleme için görüntünün tam yolunu ve adını sağlamanız gerekir. Tamamlandığında, yeni görüntünüzün genişliğini ve yüksekliğini ve seçtiğiniz çıktı konumunu kaydetmek istediğiniz yeri sağlamanız gerekir. Lütfen kütüphanenin kabul etmemesi ve bir istisna oluşturması dışında sağlanan tüm bilgilerin doğru olduğundan emin olun.
Resim 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;
}
Ek olarak, Flip, Convert veya Rotate Images C API
LibGD kütüphane, C komutlarını kullanarak programmatik olarak ekping ve video görüntüleri için tam destek sağlamıştır. Kütüphane, görüntüyü çevirmek için birden çok işlev sağladı, örneğin görüntüyü yatay veya dikey olarak da çevirmek gibi. Aynı şekilde, kendi ihtiyaçlarınıza göre kolayca döndürebilirsiniz. Bir kez yapıldığında görüntüleri rahatla kurtarabilirsiniz. Ayrıca NG ve JPEG görüntüleri diğer desteklenen dosya formatlarına dönüştürmek için destek sağlar.
C API ile AIF'e Ekle
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;
}
Bellekteki Tampondan Görüntü Yükleme
Açık kaynak kitaplığı LibGD, yazılım geliştiricilerin kendi C uygulamalarının içindeki bellekte ara belleğe almak için tüm bir görüntüyü yüklemelerine olanak tanır. Görüntü yüklendikten sonra geliştiriciler, görüntüyü arabellekten okuma, görüntüyü değiştirme, görüntüyü belirli bir konuma kaydetme vb. gibi görüntü üzerinde farklı işlemleri kolayca gerçekleştirebilir. Tamamlandığında, lütfen arabelleği normal bellek yönetimi işlevleriyle boşaltmayı unutmayın.