Skip to content

API संदर्भ

Sharp छवियों को संसाधित करने के लिए समृद्ध API प्रदान करता है। यह पृष्ठ सभी उपलब्ध विधियों का विस्तृत संदर्भ प्रदान करता है।

कंस्ट्रक्टर

sharp(input, options?)

एक नया Sharp इंस्टेंस बनाएं।

javascript
import sharp from 'sharp';

// फ़ाइल से बनाएं
const image = sharp('input.jpg');

// Buffer से बनाएं
const image = sharp(buffer);

// Stream से बनाएं
const image = sharp(stream);

// खाली छवि बनाएं
const image = sharp({
  create: {
    width: 300,
    height: 200,
    channels: 4,
    background: { r: 255, g: 0, b: 0, alpha: 1 }
  }
});

इनपुट मेटाडेटा

metadata()

छवि की मेटाडेटा जानकारी प्राप्त करें।

javascript
const metadata = await sharp('input.jpg').metadata();
console.log(metadata);
// {
//   format: 'jpeg',
//   width: 1920,
//   height: 1080,
//   space: 'srgb',
//   channels: 3,
//   depth: 'uchar',
//   density: 72,
//   hasProfile: false,
//   hasAlpha: false
// }

stats()

छवि की सांख्यिकी जानकारी प्राप्त करें।

javascript
const stats = await sharp('input.jpg').stats();
console.log(stats);
// {
//   isOpaque: true,
//   dominant: { r: 128, g: 128, b: 128 }
// }

आउटपुट विकल्प

toFile(filename, callback?)

प्रसंस्कृत छवि को फ़ाइल में सहेजें।

javascript
await sharp('input.jpg')
  .resize(300, 200)
  .toFile('output.jpg');

toBuffer(options?, callback?)

प्रसंस्कृत छवि को Buffer के रूप में आउटपुट करें।

javascript
const buffer = await sharp('input.jpg')
  .resize(300, 200)
  .jpeg()
  .toBuffer();

toFormat(format, options?)

आउटपुट प्रारूप सेट करें।

javascript
// JPEG
await sharp('input.png')
  .jpeg({ quality: 80, progressive: true })
  .toFile('output.jpg');

// PNG
await sharp('input.jpg')
  .png({ compressionLevel: 9, adaptiveFiltering: true })
  .toFile('output.png');

// WebP
await sharp('input.jpg')
  .webp({ quality: 80, effort: 6 })
  .toFile('output.webp');

// AVIF
await sharp('input.jpg')
  .avif({ quality: 80, effort: 4 })
  .toFile('output.avif');

// TIFF
await sharp('input.jpg')
  .tiff({ quality: 80, compression: 'lzw' })
  .toFile('output.tiff');

छवि समायोजन

resize(width?, height?, options?)

छवि का आकार बदलें।

javascript
// मूल समायोजन
await sharp('input.jpg')
  .resize(300, 200)
  .toFile('output.jpg');

// पहलू अनुपात बनाए रखें
await sharp('input.jpg')
  .resize(300, null)
  .toFile('output.jpg');

// फिट मोड का उपयोग करें
await sharp('input.jpg')
  .resize(300, 200, {
    fit: 'cover',        // फिट करने के लिए काटें
    position: 'center',  // केंद्र में काटें
    background: { r: 255, g: 255, b: 255, alpha: 1 }
  })
  .toFile('output.jpg');

// कर्नेल का उपयोग करें
await sharp('input.jpg')
  .resize(300, 200, {
    kernel: sharp.kernel.lanczos3
  })
  .toFile('output.jpg');

extract(region)

छवि क्षेत्र काटें।

javascript
await sharp('input.jpg')
  .extract({ left: 100, top: 100, width: 200, height: 200 })
  .toFile('cropped.jpg');

trim(threshold?)

स्वचालित रूप से पारदर्शी या सफेद किनारों को काटें।

javascript
await sharp('input.png')
  .trim()
  .toFile('trimmed.png');

छवि ऑपरेशन

rotate(angle, options?)

छवि घुमाएं।

javascript
// 90 डिग्री घुमाएं
await sharp('input.jpg')
  .rotate(90)
  .toFile('rotated.jpg');

// घुमाएं और पृष्ठभूमि भरें
await sharp('input.jpg')
  .rotate(45, { background: { r: 255, g: 255, b: 255, alpha: 1 } })
  .toFile('rotated.jpg');

flip(flip?)

छवि को लंबवत रूप से फ्लिप करें।

javascript
await sharp('input.jpg')
  .flip()
  .toFile('flipped.jpg');

flop(flop?)

छवि को क्षैतिज रूप से फ्लिप करें।

javascript
await sharp('input.jpg')
  .flop()
  .toFile('flopped.jpg');

affine(matrix, options?)

एफ़िन रूपांतरण लागू करें।

javascript
await sharp('input.jpg')
  .affine([[1, 0.3], [0, 1]], { background: { r: 255, g: 255, b: 255, alpha: 1 } })
  .toFile('transformed.jpg');

फ़िल्टर प्रभाव

blur(sigma?)

गाऊसी धुंधला लागू करें।

javascript
await sharp('input.jpg')
  .blur(5)
  .toFile('blurred.jpg');

sharpen(sigma?, flat?, jagged?)

तीक्ष्ण फ़िल्टर लागू करें।

javascript
await sharp('input.jpg')
  .sharpen()
  .toFile('sharpened.jpg');

// कस्टम तीक्ष्ण पैरामीटर
await sharp('input.jpg')
  .sharpen(1, 1, 2)
  .toFile('sharpened.jpg');

median(size?)

माध्यिका फ़िल्टर लागू करें।

javascript
await sharp('input.jpg')
  .median(3)
  .toFile('median.jpg');

flatten(options?)

पारदर्शिता चैनल मर्ज करें।

javascript
await sharp('input.png')
  .flatten({ background: { r: 255, g: 255, b: 255 } })
  .toFile('flattened.jpg');

रंग ऑपरेशन

grayscale(grayscale?)

ग्रेस्केल छवि में रूपांतरित करें।

javascript
await sharp('input.jpg')
  .grayscale()
  .toFile('grayscale.jpg');

negate(negate?)

नेगेटिव प्रभाव।

javascript
await sharp('input.jpg')
  .negate()
  .toFile('negated.jpg');

modulate(options?)

चमक, संतृप्ति और ह्यू समायोजित करें।

javascript
await sharp('input.jpg')
  .modulate({
    brightness: 1.2,    // चमक
    saturation: 0.8,    // संतृप्ति
    hue: 90             // ह्यू
  })
  .toFile('modulated.jpg');

tint(rgb)

टिंट लागू करें।

javascript
await sharp('input.jpg')
  .tint({ r: 255, g: 0, b: 0 })
  .toFile('tinted.jpg');

removeAlpha()

पारदर्शिता चैनल हटाएं।

javascript
await sharp('input.png')
  .removeAlpha()
  .toFile('no-alpha.jpg');

ensureAlpha()

पारदर्शिता चैनल सुनिश्चित करें।

javascript
await sharp('input.jpg')
  .ensureAlpha()
  .toFile('with-alpha.png');

चैनल ऑपरेशन

bandbool(boolean)

चैनलों पर बूलियन ऑपरेशन लागू करें।

javascript
await sharp('input.jpg')
  .bandbool('and')
  .toFile('bandbool.jpg');

joinChannel(channels)

चैनल मर्ज करें।

javascript
await sharp('input.jpg')
  .joinChannel(['red.jpg', 'green.jpg', 'blue.jpg'])
  .toFile('joined.jpg');

extractChannel(channel)

एकल चैनल निकालें।

javascript
await sharp('input.jpg')
  .extractChannel('red')
  .toFile('red-channel.jpg');

वैश्विक गुण

sharp.versions

संस्करण जानकारी प्राप्त करें।

javascript
console.log(sharp.versions);
// {
//   sharp: '0.32.0',
//   vips: '8.14.0'
// }

sharp.format

समर्थित प्रारूप प्राप्त करें।

javascript
console.log(sharp.format);
// {
//   jpeg: { id: 'jpeg', ... },
//   png: { id: 'png', ... },
//   webp: { id: 'webp', ... },
//   ...
// }

sharp.kernel

उपलब्ध कर्नेल प्राप्त करें।

javascript
console.log(sharp.kernel);
// {
//   nearest: 'nearest',
//   cubic: 'cubic',
//   mitchell: 'mitchell',
//   lanczos2: 'lanczos2',
//   lanczos3: 'lanczos3'
// }

त्रुटि प्रबंधन

javascript
try {
  await sharp('input.jpg')
    .resize(300, 200)
    .toFile('output.jpg');
} catch (error) {
  console.error('छवि प्रसंस्करण विफल:', error);
}

प्रदर्शन अनुकूलन

स्ट्रीम प्रसंस्करण

javascript
const pipeline = sharp()
  .resize(300, 200)
  .jpeg({ quality: 80 });

fs.createReadStream('large-input.jpg')
  .pipe(pipeline)
  .pipe(fs.createWriteStream('output.jpg'));

समवर्ती प्रसंस्करण

javascript
const promises = images.map(image => 
  sharp(image)
    .resize(300, 200)
    .jpeg()
    .toBuffer()
);

const results = await Promise.all(promises);

पूर्ण उदाहरण

javascript
import sharp from 'sharp';

async function processImage() {
  try {
    // मेटाडेटा प्राप्त करें
    const metadata = await sharp('input.jpg').metadata();
    console.log('मूल छवि आकार:', metadata.width, 'x', metadata.height);

    // कई संस्करण बनाएं
    const promises = [
      // थंबनेल
      sharp('input.jpg')
        .resize(150, 150, { fit: 'cover' })
        .jpeg({ quality: 90 })
        .toFile('thumbnail.jpg'),

      // मध्यम आकार
      sharp('input.jpg')
        .resize(800, 600, { fit: 'inside' })
        .webp({ quality: 80 })
        .toFile('medium.webp'),

      // बड़ा आकार
      sharp('input.jpg')
        .resize(1920, 1080, { fit: 'inside' })
        .jpeg({ quality: 85, progressive: true })
        .toFile('large.jpg'),

      // ग्रेस्केल संस्करण
      sharp('input.jpg')
        .grayscale()
        .jpeg({ quality: 80 })
        .toFile('grayscale.jpg')
    ];

    await Promise.all(promises);
    console.log('सभी छवि प्रसंस्करण पूर्ण!');
  } catch (error) {
    console.error('प्रसंस्करण विफल:', error);
  }
}

processImage();

अगला कदम

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