LibGD
Thư viện mã nguồn mở C để xử lý hình ảnh nâng cao
API C miễn phí cho phép các nhà phát triển nhanh chóng vẽ hình ảnh, thêm đường thẳng, vòng cung, văn bản, nhiều màu và ghi kết quả dưới dạng tệp PNG hoặc JPEG.
Hình ảnh kỹ thuật số luôn thu hút nhiều khách truy cập hơn văn bản đơn giản. Một bưc tranh đang gia ngan lơi noi. Họ có khả năng thu hút thêm 94% lượt xem và thu hút nhiều khách truy cập hơn. Việc truyền tải thông điệp của bạn bằng hình ảnh luôn hiệu quả và thuận tiện hơn. Thư viện mã nguồn mở LibGD cho phép các lập trình viên nhanh chóng vẽ hình ảnh, thêm đường thẳng, đường cong, văn bản, nhiều màu sắc và ghi kết quả dưới dạng tệp PNG hoặc JPEG.
LibGD là một thư viện đồ họa mạnh mẽ giúp các nhà phát triển phần mềm tạo và quản lý động các hình ảnh bên trong các ứng dụng C của họ. Thư viện có thể đọc và ghi nhiều định dạng hình ảnh khác nhau như BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM, v.v. Thư viện LibGD thường được sử dụng để phát triển trang web nhưng cũng có thể được sử dụng với bất kỳ ứng dụng độc lập nào. Thư viện đã bao gồm một số tính năng quan trọng để tạo và thao tác hình ảnh như tạo biểu đồ, đồ họa, hình thu nhỏ và hầu hết mọi thứ khác một cách nhanh chóng.
Bắt đầu với LibGD
Cách được khuyến nghị để cài đặt LibGD là sử dụng CMake. Vui lòng sử dụng lệnh sau để cài đặt suôn sẻ
Cài đặt LibGD qua GitHub.
$ make install
Sao chép các nguồn mới nhất bằng lệnh sau
Cài đặt LibGD qua GitHub.
$ git https://github.com/libgd/libgd.git
Tạo và sửa đổi hình ảnh qua C
Thư viện LibGD cung cấp khả năng tạo và thao tác hình ảnh một cách dễ dàng. Nó cho phép sử dụng việc tạo ra các hình ảnh ở các định dạng tệp BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM chỉ với một vài dòng mã C. Một tính năng tuyệt vời của thư viện là nó cho phép bạn tạo hình ảnh một cách nhanh chóng. Thư viện được biết đến với việc tạo ra các hình ảnh một cách nhanh chóng có thể được sử dụng trên các trang Web. Nó cho phép bạn lập trình tạo một hình ảnh, tô màu, vẽ trên đó và lưu vào đĩa một cách dễ dàng.
Tạo ra hình ảnh từ 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);
Thay đổi kích thước hình ảnh qua Thư viện C
Thư viện mã nguồn mở LibGD cho phép các lập trình viên máy tính thay đổi kích thước hình ảnh của họ một cách nhanh chóng bằng cách sử dụng các lệnh C bên trong ứng dụng của họ. Để bắt đầu, bạn cần cung cấp đường dẫn đầy đủ và tên của hình ảnh để tải. Sau khi hoàn tất, bạn cần cung cấp chiều rộng và chiều cao của hình ảnh mới và vị trí đầu ra mà bạn chọn, nơi bạn muốn lưu nó. Vui lòng đảm bảo rằng tất cả thông tin được cung cấp là chính xác ngoại trừ việc thư viện không chấp nhận thông tin đó và đưa ra một ngoại lệ.
Hình ảnh kích thước qua 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ắt, Lật, Chuyển hoặc quay hình ảnh qua C API
Thư viện LibGD đã cung cấp sự hỗ trợ hoàn toàn cho việc cắt tỉa và cắt hình ảnh bằng lệnh C. Thư viện đã cung cấp rất nhiều chức năng để lật hình ảnh, như lật hình ảnh theo chiều ngang hoặc dọc theo cả hai. Cũng giống như cút anh có thể dễ dàng xoay nó theo nhu cầu của chính anh. Một khi cô có thể cứu những hình ảnh dễ dàng. Nó cũng cung cấp sự hỗ trợ cho việc chuyển đổi hình ảnh NG và JPEG sang các tập tin khác.
Chuyển đổi NG Image sang AIF qua 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;
}
Tải ảnh từ Bộ đệm trong Bộ nhớ
Thư viện mã nguồn mở LibGD cho phép các nhà phát triển phần mềm tải toàn bộ hình ảnh vào bộ nhớ đệm bên trong các ứng dụng C của riêng họ. Sau khi hình ảnh được tải, các nhà phát triển có thể dễ dàng thực hiện các thao tác khác nhau trên hình ảnh, chẳng hạn như đọc hình ảnh từ bộ đệm, sửa đổi hình ảnh, lưu hình ảnh vào một vị trí cụ thể, v.v. Sau khi hoàn tất, hãy nhớ giải phóng bộ đệm bằng các chức năng quản lý bộ nhớ thông thường.