ImageMagick
ছবি তৈরি ও রূপান্তর করতে ওপেন সোর্স সি লাইব্রেরি
বিনামূল্যে C API ব্যবহার করে বিটম্যাপ ছবিগুলি তৈরি করুন, সম্পাদনা করুন, রচনা করুন, পড়ুন এবং রূপান্তর করুন৷ এটি C অ্যাপের মধ্যে ছবিগুলির আকার পরিবর্তন, ফ্লিপ, মিরর, ঘোরানো, বিকৃত, শিয়ার এবং রূপান্তর করার অনুমতি দেয়।
ImageMagick হল একটি ওপেন সোর্স লাইব্রেরি যা সফটওয়্যার ডেভেলপারদের তাদের নিজস্ব C অ্যাপ্লিকেশনের মধ্যে ইমেজ প্রসেসিং ক্ষমতা অন্তর্ভুক্ত করার ক্ষমতা দেয়। লাইব্রেরিটি ক্রস-প্ল্যাটফর্ম এবং লিনাক্স, উইন্ডোজ, ম্যাক ওএস এক্স, আইওএস, অ্যান্ড্রয়েড ওএস এবং আরও অনেক কিছুতে সহজে রান করতে পারে। এটি সি কোড ব্যবহার করে রাস্টার চিত্রগুলি পড়া, প্রদর্শন, তৈরি, রূপান্তর, পরিবর্তন এবং পরিবর্তনের জন্য সমর্থন অন্তর্ভুক্ত করেছে।
ইমেজম্যাজিকের একটি দুর্দান্ত বৈশিষ্ট্য হল বিভিন্ন অগ্রণী ফাইল ফর্ম্যাটের মধ্যে চিত্রগুলিকে সঠিকভাবে এবং পেশাদারভাবে রূপান্তর করার ক্ষমতা। লাইব্রেরিতে JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, পোস্টস্ক্রিপ্ট, PDF, SVG এবং আরও অনেক কিছুর মতো 200 টিরও বেশি ইমেজ ফাইল ফরম্যাটের জন্য সমর্থন অন্তর্ভুক্ত রয়েছে। লাইব্রেরিটি সহজে গ্রাফিক্স এবং অ্যানিমেটেড গ্রাফিক্সের পাশাপাশি অঙ্কনের জন্য সহায়তা প্রদান করেছে।
লাইব্রেরিটি অত্যন্ত বৈশিষ্ট্য সমৃদ্ধ এবং এতে কিছু সাধারণ চিত্র প্রক্রিয়াকরণ বৈশিষ্ট্যগুলির জন্য সমর্থন অন্তর্ভুক্ত রয়েছে যেমন চিত্রের আকার পরিবর্তন করা এবং ফ্লিপ করা, চিত্র মিররিং এবং ঘোরানো, বিকৃত করা, চিত্রগুলিকে রূপান্তর করা, চিত্রের রঙ সামঞ্জস্য করা, বিভিন্ন বিশেষ প্রভাবগুলি অস্পষ্ট করা বা তীক্ষ্ণ বা থ্রেশহোল্ড প্রয়োগ করা, চিত্র গ্রেডিয়েন্ট , ক্যানি এজ ডিটেকশন অঙ্কন পাঠ্য, রেখা, বহুভুজ, উপবৃত্ত, গাণিতিক অভিব্যক্তি ব্যবহার করে এবং আরও অনেক কিছু। সম্প্রতি লাইব্রেরিতে OCR ব্যবহার করে ছবি থেকে টেক্সট বের করার জন্য সমর্থনও অন্তর্ভুক্ত করা হয়েছে।
ImageMagick দিয়ে শুরু করা
নিম্নলিখিত কমান্ড ব্যবহার করে সর্বশেষ উত্স ক্লোন করুন
GitHub এর মাধ্যমে ImageMagick ইনস্টল করুন।
git clone https://github.com/ImageMagick/ImageMagick.git
অথবা এটি ইনস্টল করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।
RPM-এর মাধ্যমে ImageMagick ইনস্টল করুন।
$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm
ছবিকে অন্য ফরম্যাটে রূপান্তর করুন
ওপেন সোর্স C লাইব্রেরি ImageMagick সফ্টওয়্যার প্রোগ্রামারদের তাদের নিজস্ব অ্যাপের মধ্যে অন্যান্য সমর্থিত ফাইল ফরম্যাটে ছবি রূপান্তর করতে সক্ষম করে। অন্য ফরম্যাটে রূপান্তর করার আগে ব্যবহারকারীদের ফরম্যাট প্যারামিটার প্রদান করতে হবে। রূপান্তরগুলি প্রয়োগ করার আগে লাইব্রেরি অভ্যন্তরীণভাবে চিত্রটিকে অন্য ফর্ম্যাটে রূপান্তর করে। লাইব্রেরিটি BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF, এবং XPM ফর্ম্যাটের মতো বেশ কিছু জনপ্রিয় ইমেজ ফরম্যাটে রূপান্তর সমর্থন করে। লাইব্রেরির একটি দুর্দান্ত দিক হল চিত্রটি রূপান্তর করার সময় ব্যবহারের সহজতা। এটি পছন্দসই বিন্যাসে লেখার আগে চিত্রের আকার হ্রাস এবং বিভিন্ন প্রভাব প্রয়োগ করার ক্ষমতাও সরবরাহ করে।
ImageMagick-এর মাধ্যমে GIF কে JPEG ছবিতে রূপান্তর করুন
#include
using namespace std;
using namespace Magick;
int main(int argc,char **argv)
{
InitializeMagick(*argv);
// Read GIF file from disk
Image image( "giraffe.gif" );
// Write to BLOB in JPEG format
Blob blob;
image.magick( "JPEG" ) // Set JPEG output format
image.write( &blob );
[ Use BLOB data (in JPEG format) here ]
return 0;
}
C API ব্যবহার করে ইমেজ গ্রেডিয়েন্ট সাপোর্ট
ওপেন সোর্স C লাইব্রেরি ImageMagick সফ্টওয়্যার ডেভেলপারদের C কমান্ড ব্যবহার করে একাধিক রঙের ইমেজ গ্রেডিয়েন্ট তৈরি করতে সক্ষম করে। আপনি সহজেই অনুভূমিক, উল্লম্ব, বৃত্তাকার, বা উপবৃত্তাকার আকার ব্যবহার করে এক বা একাধিক রঙের ধীরে ধীরে মিশ্রণ তৈরি করতে পারেন। লাইব্রেরিটি বেশ কয়েকটি ব্যবহারের মাধ্যমে গ্রেডিয়েন্টগুলিকে উন্নত করেছে - যেমন রৈখিক গ্রেডিয়েন্টের দিকনির্দেশ নির্দিষ্ট করা, রেডিয়াল গ্রেডিয়েন্টের জন্য কেন্দ্র বিন্দুর স্থানাঙ্ক চিহ্নিত করা, চিত্রের মাত্রার চেয়ে বড় বা ছোট অঞ্চলে গ্রেডিয়েন্টকে সীমাবদ্ধ করা এবং তাই চালু. তাছাড়া, নন-লিনিয়ার গ্রেস্কেল গ্রেডিয়েন্টের জন্য, অনুগ্রহ করে আউটপুট সেভ করার আগে -colorspace RGB -colorspace gray যোগ করুন।
C API-এর মাধ্যমে একটি সাধারণ গ্রেস্কেল গ্রেডিয়েন্ট তৈরি করুন
void test_wand(LPTSTR lpCmdLine)
{
MagickWand *m_wand = NULL;
PixelWand *p_wand = NULL;
PixelIterator *iterator = NULL;
PixelWand **pixels = NULL;
int x,y,gray;
char hex[128];
MagickWandGenesis();
p_wand = NewPixelWand();
PixelSetColor(p_wand,"white");
m_wand = NewMagickWand();
// Create a 100x100 image with a default of white
MagickNewImage(m_wand,100,100,p_wand);
// Get a new pixel iterator
iterator=NewPixelIterator(m_wand);
for(y=0;y<100;y++) {
// Get the next row of the image as an array of PixelWands
pixels=PixelGetNextIteratorRow(iterator,&x);
// Set the row of wands to a simple gray scale gradient
for(x=0;x<100;x++) {
gray = x*255/100;
sprintf(hex,"#%02x%02x%02x",gray,gray,gray);
PixelSetColor(pixels[x],hex);
}
// Sync writes the pixels back to the m_wand
PixelSyncIterator(iterator);
}
MagickWriteImage(m_wand,"bits_demo.gif");
// Clean up
iterator=DestroyPixelIterator(iterator);
DestroyMagickWand(m_wand);
MagickWandTerminus();
}
সি এর মাধ্যমে চিত্রগুলিতে বিশেষ প্রভাব প্রয়োগ করুন
ওপেন সোর্স সি লাইব্রেরি ইমেজ ম্যাজিক ছবিতে বিভিন্ন ধরনের প্রভাব প্রয়োগ করার জন্য কার্যকারিতা প্রদান করেছে। এটি বেশ কয়েকটি গুরুত্বপূর্ণ ফাংশন প্রদান করেছে যেমন ঝাপসা করা, তীক্ষ্ণ করা, থ্রেশহোল্ড, ছায়া তৈরি করা, পালকের আকার দেওয়া, বা সি কোডের কয়েকটি লাইন ব্যবহার করে একটি চিত্রকে রঙ করা। সেখানে কিছু বিশেষ ব্লার ইফেক্ট যেমন রেডিও ব্লার এবং মোশন ব্লারও সমর্থিত।
C API-এর মাধ্যমে টাইল্ড ফন্ট ইফেক্ট প্রয়োগ করুন
magick_wand = NewMagickWand();
d_wand = NewDrawingWand();
p_wand = NewPixelWand();
set_tile_pattern(d_wand,"#check","pattern:checkerboard");
PixelSetColor(p_wand,"lightblue");
// Create a new transparent image
MagickNewImage(magick_wand,320,100,p_wand);
// Set up a 72 point font
DrawSetFont (d_wand, "Verdana-Bold-Italic" ) ;
DrawSetFontSize(d_wand,72);
// Now draw the text
DrawAnnotation(d_wand,28,68,"Magick");
// Draw the image on to the magick_wand
MagickDrawImage(magick_wand,d_wand);
// Trim the image
MagickTrimImage(magick_wand,0);
// Add a transparent border
PixelSetColor(p_wand,"lightblue");
MagickBorderImage(magick_wand,p_wand,5,5);
// and write it
MagickWriteImage(magick_wand,"text_pattern.png");
বড় ইমেজ সমর্থন
C লাইব্রেরি ImageMagick খুব বড় ইমেজ নিয়ে কাজ করার জন্য সমর্থন প্রদান করেছে। এটি ডেভেলপারদের তাদের নিজস্ব ইমেজ প্রসেসিং অ্যাপ্লিকেশনের মধ্যে মেগা-, গিগা- বা টেরা-পিক্সেল আকার পর্যন্ত ছবি খুলতে, পড়তে, প্রক্রিয়া করতে বা লিখতে সক্ষম করে। লাইব্রেরি একটি চিত্রকে এক চতুর্থাংশ মিলিয়ন পিক্সেল বর্গক্ষেত্রে আকার পরিবর্তন করতে দেয়৷ বড় ইমেজগুলির সাথে কাজ করার সময় আপনাকে বড় মেমরি সংস্থানগুলির প্রাপ্যতা নিশ্চিত করতে হবে। যদি ডিফল্ট অস্থায়ী ডিস্ক পার্টিশনটি ছোট হয় তবে পর্যাপ্ত পরিমাণ খালি জায়গা সহ অন্য পার্টিশন ব্যবহার করার জন্য ImageMagick কে গাইড করুন।