LibGD

 
 

Open Source C Library สำหรับการประมวลผลภาพขั้นสูง

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 Library

ไลบรารี 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 ห้องสมุดมีฟังก์ชั่นหลายอย่างสําหรับการพลิกภาพเช่นพลิกภาพในแนวนอนหรือแนวตั้งและทั้งสองอย่าง เหมือนกับการพลิกคุณยังสามารถหมุนได้อย่างง่ายดายตามความต้องการของคุณเอง เมื่อเสร็จแล้วคุณสามารถบันทึกภาพได้อย่างง่ายดาย นอกจากนี้ยังให้การสนับสนุนสําหรับการแปลงภาพ NG และ JPEG กับรูปแบบไฟล์ที่รองรับอื่น ๆ

แปลงรูปภาพ NG เป็น AIF ผ่านทาง 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 ของตนเอง เมื่อโหลดรูปภาพแล้ว นักพัฒนาสามารถดำเนินการต่างๆ กับรูปภาพได้อย่างง่ายดาย เช่น การอ่านรูปภาพจากบัฟเฟอร์ การแก้ไขรูปภาพ การบันทึกรูปภาพไปยังตำแหน่งเฉพาะ และอื่นๆ เมื่อเสร็จแล้ว โปรดอย่าลืมทำให้บัฟเฟอร์ว่างด้วยฟังก์ชันการจัดการหน่วยความจำตามปกติ

 ไทย