LibGD

 
 

Qabaqcıl Şəkil Emalı üçün Açıq Mənbə C Kitabxanası

Tərtibatçılara şəkilləri sürətlə çəkməyə, xətlər, qövslər, mətnlər, çoxlu rənglər əlavə etməyə və nəticəni PNG və ya JPEG faylı kimi yazmağa imkan verən pulsuz C API.

Rəqəmsal şəkillər həmişə sadə mətndən daha çox ziyarətçi cəlb edir. Bir şəkil min söz dəyərindədir. Onların 94% daha çox baxış cəlb etmək və daha çox ziyarətçi cəlb etmək gücü var. Şəkillərdən istifadə edərək mesajlarınızı çatdırmaq həmişə daha məhsuldar və rahatdır. LibGD açıq mənbə kitabxanası proqramçılara tez şəkillər çəkməyə, xətlər, qövslər, mətnlər, çoxlu rənglər əlavə etməyə və nəticəni PNG və ya JPEG faylı kimi yazmağa imkan verir.

LibGD proqram tərtibatçılarına C proqramları daxilində şəkilləri dinamik şəkildə yaratmağa və idarə etməyə kömək edən güclü qrafik kitabxanadır. Kitabxana BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM və s. kimi bir çox müxtəlif şəkil formatlarını oxuya və yaza bilər. LibGD kitabxanası ümumiyyətlə veb saytların inkişafı üçün istifadə olunur, lakin istənilən müstəqil proqram ilə də istifadə edilə bilər. Kitabxana şəkillərin yaradılması və manipulyasiyası üçün qrafiklər, qrafiklər, miniatürlər və digər hər şeyi tez bir zamanda yaratmaq kimi bir sıra vacib funksiyaları özündə birləşdirir.

Previous Next

LibGD ilə işə başlamaq

LibGD-ni quraşdırmanın tövsiyə olunan yolu CMake-dən istifadə etməkdir. Düzgün quraşdırmalar üçün aşağıdakı əmrdən istifadə edin

GitHub vasitəsilə LibGD quraşdırın.

$ make install 

Aşağıdakı əmrdən istifadə edərək ən son mənbələri klonlayın

GitHub vasitəsilə LibGD quraşdırın.

$ git https://github.com/libgd/libgd.git 

C vasitəsilə şəkillər yaradın və dəyişdirin

LibGD kitabxanası şəkilləri asanlıqla yaratmaq və manipulyasiya etmək imkanı verir. Bu, sadəcə bir neçə sətir C kodu ilə BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM fayl formatlarında şəkillərin yaradılmasından istifadə etməyə imkan verir. Kitabxananın əla xüsusiyyəti ondan ibarətdir ki, o, tez bir zamanda şəkillər yaratmağa imkan verir. Kitabxana veb səhifələrdə istifadə oluna bilən tez şəkillər yaratmaqla tanınır. O, sizə proqramlı şəkildə şəkil yaratmağa, onu rəngləndirməyə, üzərinə çəkməyə və asanlıqla diskdə saxlamağa imkan verir.

C API vasitəsilə Şəkillər yaradın və dəyişdirin

    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 Kitabxanası vasitəsilə şəklin ölçüsünü dəyişdirin

Açıq mənbəli LibGD kitabxanası kompüter proqramçılarına tətbiqlərindəki C əmrlərindən istifadə edərək şəkillərinin ölçüsünü dəyişdirməyə imkan verir. Başlamaq üçün yükləmə üçün şəklin tam yolunu və adını təqdim etməlisiniz. Bunu etdikdən sonra siz yeni şəklinizin enini və hündürlüyünü və onu saxlamaq istədiyiniz yerdə seçdiyiniz çıxış yerini təmin etməlisiniz. Kitabxananın onu qəbul etməməsi və istisna etməməsi istisna olmaqla, bütün təqdim olunan məlumatların düzgün olduğundan əmin olun.

C API vasitəsilə Şəklin ölçüsünü dəyişdirin

    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;
}
    

C API vasitəsilə şəkilləri kəsin, çevirin, çevirin və ya fırladın

LibGD kitabxanası C əmrlərindən istifadə edərək şəkillərin proqramlı şəkildə kəsilməsi və Flipping üçün tam dəstəyi təmin etmişdir. Kitabxana şəkli çevirmək üçün çoxlu funksiyalar təqdim etmişdir, məsələn, şəkli üfüqi və ya şaquli, eləcə də hər ikisi ilə çevirmək. Fırlatma kimi, onu öz ehtiyaclarınıza uyğun olaraq asanlıqla döndərə bilərsiniz. Bitirdikdən sonra şəkilləri asanlıqla saxlaya bilərsiniz. O, həmçinin PNG və JPEG şəkillərini digər dəstəklənən fayl formatlarına çevirmək üçün dəstək verir.

PNG şəklini C API vasitəsilə AVIF-ə çevirin

   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;
}

Şəkil Yaddaşda Buferdən Yüklənir

LibGD açıq mənbə kitabxanası proqram tərtibatçılarına öz C proqramları daxilində yaddaşda bufer saxlamaq üçün bütün təsviri yükləməyə imkan verir. Şəkil yükləndikdən sonra tərtibatçılar təsvir üzərində müxtəlif əməliyyatları asanlıqla yerinə yetirə bilərlər, məsələn, buferdən təsviri oxumaq, təsviri dəyişdirmək, şəkli müəyyən bir yerə saxlamaq və s. Tamamlandıqdan sonra normal yaddaş idarəetmə funksiyaları ilə buferi boşaltmağı unutmayın.

 Azəri