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.
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.