LibGD
উন্নত চিত্র প্রক্রিয়াকরণের জন্য ওপেন সোর্স সি লাইব্রেরি
বিনামূল্যের C API যা ডেভেলপারদের দ্রুত ছবি আঁকতে, লাইন, আর্কস, টেক্সট, একাধিক রং যোগ করতে এবং ফলাফলটিকে PNG বা JPEG ফাইল হিসেবে লিখতে সক্ষম করে।
ডিজিটাল ছবি সবসময় সাধারণ পাঠ্যের চেয়ে বেশি দর্শক আকর্ষণ করে। একটি ছবি হাজার শব্দের সমান. তাদের 94% বেশি ভিউ আকৃষ্ট করার এবং আরও দর্শকদের জড়িত করার ক্ষমতা রয়েছে। ইমেজ ব্যবহার করে আপনার বার্তা প্রদান করা সবসময় আরও ফলপ্রসূ এবং সুবিধাজনক। ওপেন সোর্স লাইব্রেরি LibGD প্রোগ্রামারদের দ্রুত ছবি আঁকতে, লাইন, আর্কস, টেক্সট, একাধিক রং যোগ করতে এবং ফলাফলটিকে PNG বা JPEG ফাইল হিসেবে লিখতে সক্ষম করে।
LibGD হল একটি শক্তিশালী গ্রাফিক্স লাইব্রেরি যা সফটওয়্যার ডেভেলপারদের তাদের C অ্যাপ্লিকেশনের মধ্যে গতিশীলভাবে ছবি তৈরি ও পরিচালনা করতে সাহায্য করে। লাইব্রেরিটি BMP, GIF, TGA, WBMP, JPEG, PNG, TIFF, WebP, XPM এবং আরও অনেক কিছুর মতো বিভিন্ন ইমেজ ফরম্যাট পড়তে এবং লিখতে পারে। লাইব্রেরি LibGD সাধারণত ওয়েবসাইট ডেভেলপমেন্টের জন্য ব্যবহার করা হয় তবে যেকোনো স্বতন্ত্র অ্যাপ্লিকেশনের সাথেও ব্যবহার করা যেতে পারে। লাইব্রেরিতে ছবি তৈরি এবং ম্যানিপুলেশনের জন্য বেশ কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য অন্তর্ভুক্ত করা হয়েছে যেমন চার্ট, গ্রাফিক্স, থাম্বনেইল এবং অন্য যেকোন কিছু তৈরি করা।
LibGD দিয়ে শুরু করা
LibGD ইনস্টল করার প্রস্তাবিত উপায় হল CMake ব্যবহার করা। মসৃণ ইনস্টলেশনের জন্য অনুগ্রহ করে নিম্নলিখিত কমান্ডটি ব্যবহার করুন
GitHub এর মাধ্যমে LibGD ইনস্টল করুন।
$ make install
নিম্নলিখিত কমান্ড ব্যবহার করে সর্বশেষ উত্স ক্লোন করুন
GitHub এর মাধ্যমে LibGD ইনস্টল করুন।
$ 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);
সি লাইব্রেরির মাধ্যমে চিত্রের আকার পরিবর্তন করা হচ্ছে
ওপেন সোর্স 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 অ্যাপ্লিকেশনের মধ্যে মেমরিতে বাফার করার জন্য একটি সম্পূর্ণ চিত্র লোড করতে দেয়। একবার ইমেজ লোড হয়ে গেলে ডেভেলপাররা সহজেই ইমেজে বিভিন্ন অপারেশন করতে পারে, যেমন বাফার থেকে ইমেজ পড়া, ইমেজ পরিবর্তন করা, ইমেজটিকে একটি নির্দিষ্ট জায়গায় সেভ করা ইত্যাদি। একবার হয়ে গেলে অনুগ্রহ করে স্বাভাবিক মেমরি ম্যানেজমেন্ট ফাংশন সহ বাফারটি মুক্ত করতে মনে রাখবেন।