Skip to content

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);
}

प्रदर्शन सुझाव ​

  1. इंस्टेंस पुन: उपयोग: जहां संभव हो Sharp इंस्टेंस का पुन: उपयोग करें
  2. स्ट्रीम प्रसंस्करण: बड़ी फ़ाइलों के लिए, स्ट्रीम प्रसंस्करण का उपयोग करें
  3. मेमोरी प्रबंधन: अनावश्यक इंस्टेंस को समय पर मुक्त करें
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');

संबंधित लिंक ​

Apache 2.0 लाइसेंस के तहत जारी किया गया।