LibGD

 
 

ספריית קוד פתוח C לעיבוד תמונות מתקדם

ממשק API חינמי המאפשר למפתחים לצייר במהירות תמונות, להוסיף קווים, קשתות, טקסט, צבעים מרובים ולכתוב את התוצאה כקובץ PNG או JPEG.

תמונות דיגיטליות תמיד מושכות יותר מבקרים מאשר טקסט פשוט. תמונה שווה אלף מילים. יש להם את הכוח למשוך 94% יותר צפיות ולמשוך יותר מבקרים. זה תמיד יותר פורה ונוח להעביר את המסרים שלך באמצעות תמונות. ספריית הקוד הפתוח LibGD מאפשרת למתכנתים לצייר במהירות תמונות, להוסיף קווים, קשתות, טקסט, צבעים מרובים ולכתוב את התוצאה כקובץ PNG או JPEG.

LibGD היא ספריית גרפיקה רבת עוצמה המסייעת למפתחי תוכנה ליצור ולנהל תמונות באופן דינמי בתוך יישומי C שלהם. הספרייה יכולה לקרוא ולכתוב פורמטים רבים ושונים של תמונות כגון BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM ועוד הרבה יותר. הספרייה LibGD משמשת בדרך כלל לפיתוח אתרים, אך ניתן להשתמש בה גם עם כל אפליקציה עצמאית. הספרייה כללה מספר תכונות חשובות ליצירת תמונות ומניפולציה כגון יצירת תרשימים, גרפיקה, תמונות ממוזערות, וכמעט כל דבר אחר, תוך כדי תנועה.

Previous Next

תחילת העבודה עם LibGD

הדרך המומלצת להתקנת LibGD היא באמצעות CMake. אנא השתמש בפקודה הבאה להתקנות חלקות

התקן את LibGD דרך GitHub.

$ make install 

שכפל את המקורות העדכניים ביותר באמצעות הפקודה הבאה

התקן את LibGD דרך GitHub.

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

צור ושנה תמונות באמצעות C

ספריית LibGD מספקת את היכולת ליצור ולתפעל תמונות בקלות. זה מאפשר שימוש ביצירת תמונות בפורמטים של קבצים BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM עם כמה שורות של קוד C. תכונה נהדרת אחת של הספרייה היא שהיא מאפשרת לך ליצור תמונות תוך כדי תנועה. הספרייה ידועה ביצירת תמונות תוך כדי תנועה שניתן להשתמש בהן בדפי אינטרנט. זה מאפשר לך ליצור תמונה באופן תוכנתי, לצבוע אותה, לצייר עליה ולשמור אותה בדיסק בקלות.

צור ושנה תמונות באמצעות 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

ספריית הקוד הפתוח LibGD מאפשרת למתכנתי מחשבים לשנות את גודל התמונות שלהם תוך כדי שימוש באמצעות פקודות C בתוך האפליקציות שלהם. כדי להתחיל אתה צריך לספק את הנתיב המלא ואת השם של התמונה לטעינה. ברגע שזה נעשה, אתה צריך לספק את הרוחב והגובה של התמונה החדשה שלך ואת מיקום הפלט לבחירתך שבו אתה רוצה לשמור אותה. אנא ודא שכל המידע שסופק נכון מלבד שהספרייה לא מקבלת אותו וזורקת חריגה.

שנה את גודל התמונה באמצעות 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;
}
    

חתוך, הפוך, המר או סובב תמונות באמצעות C API

ספריית LibGD סיפקה תמיכה מלאה לחיתוך תוכנית והיפוך תמונות באמצעות פקודות C. הספרייה סיפקה פונקציות מרובות להיפוך התמונה, כגון היפוך התמונה אופקית או אנכית וגם שתיהן. כמו להעיף, אתה יכול גם לסובב אותו בקלות לפי הצרכים שלך. לאחר שתסיים תוכל לשמור את התמונות בקלות. זה גם מספק תמיכה להמרת תמונות PNG ו-JPEG לפורמטי קבצים נתמכים אחרים.

המר תמונת PNG ל-AVIF באמצעות 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;
}

טעינת תמונה ממאגר בזיכרון

ספריית הקוד הפתוח LibGD מאפשרת למפתחי תוכנה לטעון תמונה שלמה לאחסון בזיכרון בתוך יישומי C שלהם. לאחר טעינת התמונה המפתחים יכולים בקלות לבצע פעולות שונות בתמונה, כמו קריאת התמונה מהמאגר, שינוי התמונה, שמירת התמונה במיקום מסוים וכן הלאה. לאחר שתסיים, אנא זכור לשחרר את המאגר עם פונקציות ניהול זיכרון רגילות.

 עִברִית