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 लाइसेंस के तहत जारी किया गया।