1. Produk
  2.   Imej
  3.   LibGD

LibGD

 
 

Perpustakaan C Sumber Terbuka untuk Pemprosesan Imej Lanjutan

C  API percuma yang membolehkan pembangun melukis imej dengan cepat, menambah garisan, lengkok, teks, berbilang warna dan menulis hasilnya sebagai fail PNG atau JPEG.

Imej digital sentiasa menarik lebih ramai pelawat daripada teks ringkas. Sekeping gambar bernilai seribu perkataan. Mereka mempunyai kuasa untuk menarik 94% lebih banyak tontonan dan melibatkan lebih ramai pelawat. Ia sentiasa lebih bermanfaat dan mudah untuk menyampaikan mesej anda menggunakan imej. Pustaka sumber terbuka LibGD membolehkan pengaturcara melukis imej dengan pantas, menambah garisan, arka, teks, berbilang warna dan menulis hasilnya sebagai fail PNG atau JPEG.

LibGD ialah perpustakaan grafik berkuasa yang membantu pembangun perisian menjana dan mengurus imej secara dinamik dalam aplikasi C mereka. Perpustakaan boleh membaca dan menulis pelbagai format imej yang berbeza seperti BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM dan banyak lagi. Perpustakaan LibGD biasanya digunakan untuk pembangunan laman web tetapi juga boleh digunakan dengan mana-mana aplikasi kendiri. Perpustakaan ini telah menyertakan beberapa ciri penting untuk penciptaan dan manipulasi imej seperti menjana carta, grafik, lakaran kecil, dan kebanyakan perkara lain, dengan cepat.

Previous Next

Bermula dengan LibGD

Cara yang disyorkan untuk memasang LibGD adalah menggunakan CMake. Sila gunakan arahan berikut untuk pemasangan yang lancar

Pasang LibGD melalui GitHub.

$ make install 

Klon sumber terkini menggunakan arahan berikut

Pasang LibGD melalui GitHub.

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

Jana & Ubah Suai Imej melalui C

Pustaka LibGD menyediakan keupayaan untuk mencipta dan memanipulasi imej dengan mudah. Ia membenarkan penggunaan penciptaan imej dalam format fail BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM dengan hanya beberapa baris kod C. Satu ciri hebat perpustakaan ialah ia membolehkan anda membuat imej dengan cepat. Perpustakaan ini terkenal kerana mencipta imej dengan cepat yang boleh digunakan pada halaman Web. Ia membolehkan anda mencipta imej secara pemrograman, mewarnakannya, melukis padanya dan menyimpannya ke cakera dengan mudah.

Jana & Ubah Suai Imej melalui 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);
    

Saiz semula Imej melalui Perpustakaan C

Pustaka LibGD sumber terbuka membolehkan pengaturcara komputer mengubah saiz imej mereka dengan cepat menggunakan arahan C di dalam aplikasi mereka. Untuk memulakan anda perlu menyediakan laluan lengkap dan nama imej untuk dimuatkan. Setelah selesai, anda perlu memberikan lebar dan ketinggian imej baharu anda dan lokasi output pilihan anda di mana anda ingin menyimpannya. Sila pastikan semua maklumat yang diberikan adalah betul selain daripada perpustakaan tidak menerimanya dan membuang pengecualian.

Saiz semula Imej melalui 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;
}
    

Pangkas, Balik, Tukar atau Putar Imej melalui C API

Pustaka LibGD telah menyediakan sokongan lengkap untuk memangkas dan Membalikkan imej secara pemrograman menggunakan arahan C. Perpustakaan telah menyediakan pelbagai fungsi untuk membalikkan imej, seperti membalikkan imej secara mendatar atau menegak serta kedua-duanya. Sama seperti membalikkan anda juga boleh memutarkannya dengan mudah mengikut keperluan anda sendiri. Setelah selesai, anda boleh menyimpan imej dengan mudah. Ia juga menyediakan sokongan untuk menukar imej PNG dan JPEG kepada format fail lain yang disokong.

Tukar Imej PNG kepada AVIF melalui 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;
}

Memuatkan Imej daripada Penampan dalam Memori

Pustaka sumber terbuka LibGD membenarkan pembangun perisian memuatkan keseluruhan imej untuk menimbal dalam ingatan di dalam aplikasi C mereka sendiri. Setelah imej dimuatkan, pembangun boleh melakukan operasi yang berbeza pada imej dengan mudah, seperti membaca imej daripada penimbal, mengubah suai imej, menyimpan imej ke lokasi tertentu dan sebagainya. Setelah selesai, sila ingat untuk membebaskan penimbal dengan fungsi pengurusan memori biasa.

 Melayu