ImageMagick
छवियों को बनाने और कनवर्ट करने के लिए ओपन सोर्स सी लाइब्रेरी
निःशुल्क C API का उपयोग करके बिटमैप छवियां बनाएं, संपादित करें, लिखें, पढ़ें और कनवर्ट करें। यह सी ऐप्स के अंदर आकार बदलने, फ्लिप करने, दर्पण करने, घुमाने, विकृत करने, कतरने और छवियों को बदलने की अनुमति देता है।
इमेजमैजिक एक ओपन सोर्स लाइब्रेरी है जो सॉफ्टवेयर डेवलपर्स को अपने स्वयं के सी अनुप्रयोगों के अंदर इमेज प्रोसेसिंग क्षमताओं को शामिल करने की शक्ति देता है। पुस्तकालय क्रॉस-प्लेटफ़ॉर्म है और लिनक्स, विंडोज, मैक ओएस एक्स, आईओएस, एंड्रॉइड ओएस और कई अन्य पर आसानी से चल सकता है। इसमें सी कोड का उपयोग करके रास्टर छवियों को पढ़ने, प्रदर्शित करने, बनाने, परिवर्तित करने, संशोधित करने और संशोधित करने के लिए समर्थन शामिल है।
ImageMagick की एक बड़ी विशेषता विभिन्न प्रमुख फ़ाइल स्वरूपों के बीच छवियों को सटीक और पेशेवर रूप से परिवर्तित करने की क्षमता है। पुस्तकालय में JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, पोस्टस्क्रिप्ट, PDF, SVG, और कई अन्य जैसे 200 से अधिक छवि फ़ाइल स्वरूपों के लिए समर्थन शामिल है। पुस्तकालय ने आसानी से ड्राइंग के साथ-साथ ग्राफिक्स और एनिमेटेड ग्राफिक्स के लिए भी सहायता प्रदान की है।
पुस्तकालय बहुत सुविधा संपन्न है और इसमें कुछ सामान्य छवि प्रसंस्करण सुविधाओं के लिए समर्थन शामिल है जैसे छवि का आकार बदलना और फ़्लिप करना, छवि मिररिंग और घूर्णन, विकृत करना, छवियों को बदलना, छवि रंग समायोजन, विभिन्न विशेष प्रभावों को धुंधला या तेज करना या थ्रेसहोल्ड, छवि ग्रेडियेंट लागू करना , कैनी एज डिटेक्शन ड्रा टेक्स्ट, लाइन्स, पॉलीगॉन, इलिप्सेस, मैथमैटिकल एक्सप्रेशन का उपयोग करके और भी बहुत कुछ। हाल ही में पुस्तकालय ने ओसीआर का उपयोग करके छवियों से पाठ निकालने के लिए समर्थन भी शामिल किया है।
ImageMagick के साथ शुरुआत करना
निम्नलिखित कमांड का उपयोग करके नवीनतम स्रोतों को क्लोन करें
GitHub के माध्यम से ImageMagick स्थापित करें।
git clone https://github.com/ImageMagick/ImageMagick.git
या इसे स्थापित करने के लिए निम्न आदेश का उपयोग करें।
RPM के माध्यम से ImageMagick इंस्टॉल करें।
$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm
छवि को अन्य प्रारूपों में बदलें
ओपन सोर्स सी लाइब्रेरी इमेजमैजिक सॉफ्टवेयर प्रोग्रामर्स को अपने ऐप्स के अंदर इमेज को अन्य सपोर्टेड फाइल फॉर्मेट में बदलने में सक्षम बनाता है। उपयोगकर्ताओं को किसी अन्य प्रारूप में कनवर्ट करने से पहले प्रारूप पैरामीटर प्रदान करना होगा। परिवर्तन लागू करने से पहले पुस्तकालय आंतरिक रूप से छवि को अन्य प्रारूपों में परिवर्तित करता है। पुस्तकालय कई लोकप्रिय छवि प्रारूपों जैसे बीएमपी, सीएमवाईके, जीआईएफ, जेपीईजी, पीबीएम, पीएनजी, आरजीबी, एसवीजी, टीआईएफएफ, और एक्सपीएम प्रारूपों में रूपांतरण का समर्थन करता है। पुस्तकालय का एक बड़ा पहलू छवि को परिवर्तित करते समय उपयोग में आसानी है। यह छवि के आकार को कम करने और वांछित प्रारूप में लिखने से पहले विभिन्न प्रभावों को लागू करने की क्षमता भी प्रदान करता है।
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;
}
सी एपीआई का उपयोग करके छवि ग्रेडियेंट समर्थन
ओपन सोर्स सी लाइब्रेरी इमेजमैजिक सॉफ्टवेयर डेवलपर्स को सी कमांड का उपयोग करके कई रंगों के इमेज ग्रेडिएंट बनाने में सक्षम बनाता है। आप क्षैतिज, लंबवत, गोलाकार या अण्डाकार आकृतियों का उपयोग करके आसानी से एक या एकाधिक रंगों का क्रमिक मिश्रण बना सकते हैं। पुस्तकालय ने रेखीय ढाल की दिशा को निर्दिष्ट करने, रेडियल ग्रेडिएंट के लिए केंद्र बिंदु के निर्देशांक की पहचान करने, छवि आयामों की तुलना में बड़े या छोटे क्षेत्र में ढाल को प्रतिबंधित करने जैसे कई-परिभाषित के उपयोग के माध्यम से ग्रेडिएंट को बढ़ाया है, और इसलिए पर। इसके अलावा, गैर-रेखीय ग्रेस्केल ग्रेडिएंट के लिए, कृपया आउटपुट को सहेजने से पहले -colorspace RGB -colorspace ग्रे जोड़ें।
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 . के माध्यम से छवियों पर विशेष प्रभाव लागू करें
ओपन सोर्स सी लाइब्रेरी इमेजमैजिक ने छवियों पर विभिन्न प्रकार के प्रभावों को लागू करने के लिए कार्यक्षमता प्रदान की है। इसने कई महत्वपूर्ण कार्य प्रदान किए हैं जैसे धुंधला करना, तेज करना, दहलीज बनाना, छाया बनाना, आकार देना, या सी कोड की कुछ पंक्तियों का उपयोग करके एक छवि को रंगना। वहां कुछ स्पेशल ब्लर इफेक्ट जैसे रेडियो ब्लर और मोशन ब्लर भी सपोर्ट करते हैं।
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");
बड़ी छवियाँ समर्थन
सी लाइब्रेरी इमेजमैजिक ने बहुत बड़ी छवियों के साथ काम करने के लिए समर्थन प्रदान किया है। यह डेवलपर्स को अपने स्वयं के छवि प्रसंस्करण अनुप्रयोगों के अंदर मेगा-, गीगा- या तेरा-पिक्सेल आकार तक छवियों को खोलने, पढ़ने, संसाधित करने या लिखने में सक्षम बनाता है। पुस्तकालय एक छवि को एक चौथाई मिलियन पिक्सेल वर्ग में आकार देने की अनुमति देता है। बड़ी छवियों के साथ काम करते समय आपको यह सुनिश्चित करने की आवश्यकता है कि बड़े मेमोरी संसाधनों की उपलब्धता हो। यदि डिफ़ॉल्ट अस्थायी डिस्क विभाजन छोटा है, तो पर्याप्त मात्रा में खाली स्थान के साथ किसी अन्य विभाजन का उपयोग करने के लिए ImageMagick का मार्गदर्शन करें।