Sharp कंस्ट्रक्टर
Sharp Node.js के लिए एक उच्च प्रदर्शन छवि प्रसंस्करण लाइब्रेरी है। कंस्ट्रक्टर Sharp का उपयोग करने का प्रारंभिक बिंदु है।
मूल उपयोग
javascript
import sharp from 'sharp';
// फ़ाइल पथ से Sharp इंस्टेंस बनाएं
const image = sharp('input.jpg');
// Buffer से Sharp इंस्टेंस बनाएं
const image = sharp(inputBuffer);
// Stream से Sharp इंस्टेंस बनाएं
const image = sharp(inputStream);कंस्ट्रक्टर पैरामीटर
इनपुट स्रोत
Sharp कंस्ट्रक्टर कई इनपुट स्रोत स्वीकार करता है:
javascript
// फ़ाइल पथ
sharp('input.jpg')
// Buffer
sharp(buffer)
// Stream
sharp(stream)
// URL
sharp('https://example.com/image.jpg')
// कई इनपुट स्रोत
sharp(['input1.jpg', 'input2.jpg'])विकल्प वस्तु
javascript
sharp(input, {
// इनपुट विकल्प
input: {
failOnError: false,
limitInputPixels: 268402689,
sequentialRead: false
},
// पृष्ठ विकल्प (बहु-पृष्ठ छवियों के लिए)
pages: -1,
// कच्चा विकल्प
raw: {
width: 1920,
height: 1080,
channels: 3
}
})इनपुट विकल्प
failOnError
- प्रकार:
boolean - डिफ़ॉल्ट मान:
true - विवरण: त्रुटि आने पर अपवाद फेंकना है या नहीं
javascript
sharp('input.jpg', { failOnError: false })
.resize(300, 200)
.toFile('output.jpg')
.catch(err => console.log('प्रसंस्करण विफल:', err));limitInputPixels
- प्रकार:
number - डिफ़ॉल्ट मान:
268402689(16384 x 16384) - विवरण: इनपुट छवि के पिक्सेल की संख्या सीमित करता है
javascript
sharp('large-image.jpg', {
limitInputPixels: 100000000
})sequentialRead
- प्रकार:
boolean - डिफ़ॉल्ट मान:
false - विवरण: छवि डेटा को क्रमिक रूप से पढ़ना है या नहीं
javascript
sharp('input.jpg', { sequentialRead: true })बहु-पृष्ठ छवि
बहु-पृष्ठ छवियों (जैसे TIFF, PDF) के लिए, आप प्रसंस्करण के लिए पृष्ठ निर्दिष्ट कर सकते हैं:
javascript
// सभी पृष्ठों को संसाधित करें
sharp('multi-page.tiff', { pages: -1 })
// विशिष्ट पृष्ठ संसाधित करें (0 से शुरू)
sharp('multi-page.tiff', { pages: 0 })
// कई पृष्ठ संसाधित करें
sharp('multi-page.tiff', { pages: [0, 2, 4] })कच्चा छवि डेटा
कच्चा छवि डेटा संसाधित करते समय, आकार और चैनल संख्या निर्दिष्ट करनी होती है:
javascript
sharp(rawBuffer, {
raw: {
width: 1920,
height: 1080,
channels: 3 // RGB
}
})त्रुटि प्रबंधन
javascript
try {
const image = sharp('input.jpg');
await image.toFile('output.jpg');
} catch (error) {
console.error('छवि प्रसंस्करण विफल:', error.message);
}प्रदर्शन सुझाव
- इंस्टेंस पुन: उपयोग: जहां संभव हो Sharp इंस्टेंस का पुन: उपयोग करें
- स्ट्रीम प्रसंस्करण: बड़ी फ़ाइलों के लिए, स्ट्रीम प्रसंस्करण का उपयोग करें
- मेमोरी प्रबंधन: अनावश्यक इंस्टेंस को समय पर मुक्त करें
javascript
// अच्छा अभ्यास
const sharp = require('sharp');
const image = sharp('input.jpg');
// कई ऑपरेशन संसाधित करें
await image
.resize(300, 200)
.jpeg({ quality: 80 })
.toFile('output1.jpg');
await image
.resize(150, 100)
.png()
.toFile('output2.jpg');