LibGD
کتابخانه منبع باز C برای پردازش تصویر پیشرفته
C API رایگان که به توسعهدهندگان امکان میدهد به سرعت تصاویر را ترسیم کنند، خطوط، قوسها، متن، رنگهای متعدد را اضافه کنند و نتیجه را به صورت فایل PNG یا JPEG بنویسند.
تصاویر دیجیتال همیشه بازدیدکنندگان بیشتری را نسبت به متن های ساده جذب می کنند. یک تصویر ارزش هزار کلمه است. آنها قدرت جذب 94٪ بازدید بیشتر و جذب بازدیدکنندگان بیشتری را دارند. ارسال پیام های خود با استفاده از تصاویر همیشه مفیدتر و راحت تر است. کتابخانه منبع باز LibGD به برنامه نویسان این امکان را می دهد که به سرعت تصاویر را ترسیم کنند، خطوط، قوس ها، متن، چندین رنگ را اضافه کنند و نتیجه را به صورت فایل PNG یا JPEG بنویسند.
LibGD یک کتابخانه گرافیکی قدرتمند است که به توسعه دهندگان نرم افزار کمک می کند تا به صورت پویا تصاویر را در برنامه های C خود تولید و مدیریت کنند. این کتابخانه می تواند بسیاری از فرمت های تصویری مختلف مانند BMP، GIF، TGA، WBMP، JPEG، PNG، TIFF، WebP، XPM و بسیاری دیگر را بخواند و بنویسد. کتابخانه LibGD معمولاً برای توسعه وب سایت استفاده می شود، اما همچنین می تواند با هر برنامه مستقل استفاده شود. این کتابخانه دارای چندین ویژگی مهم برای ایجاد و دستکاری تصویر مانند ایجاد نمودار، گرافیک، تصاویر کوچک و بیشتر هر چیز دیگری است.
شروع کار با 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 به سایر فرمت های فایل پشتیبانی شده پشتیبانی می کند.
از طریق C API تصویر PNG را به AVIF تبدیل کنید
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 خود بارگذاری کنند. پس از بارگذاری تصویر، توسعه دهندگان می توانند به راحتی عملیات مختلفی را روی تصویر انجام دهند، مانند خواندن تصویر از بافر، تغییر تصویر، ذخیره تصویر در یک مکان خاص و غیره. پس از اتمام، لطفاً به خاطر داشته باشید که بافر را با عملکردهای مدیریت حافظه معمولی آزاد کنید.