Node.js में इमेज के साथ काम करना: सर्वश्रेष्ठ लाइब्रेरीज़ का अवलोकन
आधुनिक Node.js वेब डेवलपमेंट में अक्सर इमेज को प्रोग्रामेटिक रूप से प्रोसेस करने की ज़रूरत होती है: साइज़ बदलना, फ़ॉर्मेट कन्वर्ट करना, वॉटरमार्क लगाना या साइट लोडिंग स्पीड के लिए ऑप्टिमाइज़ करना। इस आर्टिकल में हम Node.js वातावरण में इमेज प्रोसेसिंग की तीन सबसे लोकप्रिय लाइब्रेरीज़: Sharp, Jimp और gm (GraphicsMagick) के बारे में जानेंगे।
1. Sharp — तेज़ और कुशल प्रोसेसिंग
Sharp लाइब्रेरी C में लिखे नेटिव libvips मॉड्यूल का उपयोग करती है, जो अधिकतम परफॉरमेंस देती है। यह सर्वर-साइड एप्लिकेशन के लिए एकदम सही है जहाँ प्रति सेकंड दर्जनों या सैकड़ों इमेज को तेज़ी से प्रोसेस करना होता है।
इंस्टॉलेशन
npm install sharp
मुख्य फीचर्स और उदाहरण
- साइज़ बदलना — resize(width, height)
- फ़ॉर्मेट कन्वर्ट करना — toFormat('webp')
- क्रॉप और रोटेट — extract(), rotate()
- टेक्स्ट ओवरले — composite()
उदाहरण: साइज़ बदलना और WebP में कन्वर्ट करना
const sharp = require('sharp');
sharp('input.jpg')
.resize(800, 600)
.toFormat('webp')
.toFile('output.webp')
.then(info => console.log('हो गया:', info))
.catch(err => console.error(err));
उदाहरण: क्रॉप के साथ थंबनेल बनाना
const sharp = require('sharp');
sharp('large-photo.jpg')
.resize(200, 200, { fit: 'cover' })
.toFile('thumbnail.jpg')
.then(() => console.log('थंबनेल बन गया'));
2. Jimp — शुद्ध JavaScript समाधान
Jimp (JavaScript Image Manipulation Program) लाइब्रेरी पूरी तरह से JavaScript में लिखी गई है और इसे किसी अतिरिक्त सिस्टम डिपेंडेंसी की ज़रूरत नहीं है। यह उन वातावरणों के लिए आदर्श है जहाँ नेटिव मॉड्यूल का उपयोग नहीं किया जा सकता (जैसे कुछ क्लाउड प्लेटफ़ॉर्म)।
इंस्टॉलेशन
npm install jimp
मुख्य क्षमताएँ
- साइज़ बदलना, क्रॉप करना, घुमाना
- रंग प्रभाव लगाना (ग्रेस्केल, इनवर्ज़न)
- फ़ॉन्ट चुनकर टेक्स्ट ओवरले करना
- पारदर्शिता के साथ काम करना (PNG)
उदाहरण: इमेज पर टेक्स्ट लगाना
const Jimp = require('jimp');
Jimp.read('background.png')
.then(image => {
return Jimp.loadFont(Jimp.FONT_SANS_32_WHITE)
.then(font => {
image.print(font, 50, 50, 'नमस्ते दुनिया!');
return image.writeAsync('result.png');
});
})
.catch(err => console.error(err));
उदाहरण: ग्रेस्केल बनाना
const Jimp = require('jimp');
Jimp.read('colorful.jpg')
.then(image => {
return image
.greyscale()
.writeAsync('black-white.jpg');
})
.catch(err => console.error(err));
3. gm (GraphicsMagick) — जटिल कार्यों के लिए शक्तिशाली टूल
gm लाइब्रेरी GraphicsMagick या ImageMagick सिस्टम यूटिलिटीज़ का रैपर है। यह इमेज प्रोसेसिंग की लगभग असीमित क्षमताएँ प्रदान करती है, लेकिन सर्वर पर संबंधित सॉफ़्टवेयर इंस्टॉल करना ज़रूरी है।
इंस्टॉलेशन
npm install gm
साथ ही, सिस्टम पर GraphicsMagick या ImageMagick इंस्टॉल करना होगा (जैसे apt-get, brew या Windows इंस्टॉलर के ज़रिए)।
मुख्य क्षमताएँ
- सभी इमेज फ़ॉर्मेट का सपोर्ट
- लेयर और मास्क का जटिल ओवरले
- एडवांस्ड कलर करेक्शन
- बैच प्रोसेसिंग
उदाहरण: वॉटरमार्क लगाना
const gm = require('gm');
gm('input.jpg')
.draw('image Over 10,10 0,0 watermark.png')
.write('output.jpg', function (err) {
if (!err