मूल उदाहरण
यहां Sharp के मूल उपयोग के कुछ उदाहरण दिए गए हैं, जो आपको तेज़ी से शुरू करने में मदद करेंगे।
छवि का आकार बदलना
सरल आकार बदलना
javascript
import sharp from 'sharp';
// निर्दिष्ट आकार में समायोजित करें
await sharp('input.jpg')
.resize(300, 200)
.toFile('output.jpg');पहलू अनुपात बनाए रखना
javascript
// केवल चौड़ाई निर्दिष्ट करें, ऊंचाई स्वचालित रूप से गणना की जाएगी
await sharp('input.jpg')
.resize(300)
.toFile('output.jpg');
// केवल ऊंचाई निर्दिष्ट करें, चौड़ाई स्वचालित रूप से गणना की जाएगी
await sharp('input.jpg')
.resize(null, 200)
.toFile('output.jpg');फिट मोड
javascript
// cover: पहलू अनुपात बनाए रखें, अतिरिक्त भाग काटें
await sharp('input.jpg')
.resize(300, 200, { fit: 'cover' })
.toFile('output.jpg');
// contain: पहलू अनुपात बनाए रखें, पृष्ठभूमि जोड़ें
await sharp('input.jpg')
.resize(300, 200, { fit: 'contain', background: { r: 255, g: 255, b: 255 } })
.toFile('output.jpg');प्रारूप रूपांतरण
JPEG से PNG
javascript
await sharp('input.jpg')
.png()
.toFile('output.png');PNG से JPEG
javascript
await sharp('input.png')
.jpeg({ quality: 80 })
.toFile('output.jpg');WebP में रूपांतरण
javascript
await sharp('input.jpg')
.webp({ quality: 80 })
.toFile('output.webp');AVIF में रूपांतरण
javascript
await sharp('input.jpg')
.avif({ quality: 80 })
.toFile('output.avif');छवि घुमाना
90 डिग्री घुमाना
javascript
await sharp('input.jpg')
.rotate(90)
.toFile('output.jpg');स्वचालित घुमाना (EXIF के अनुसार)
javascript
await sharp('input.jpg')
.rotate() // स्वचालित घुमाना
.toFile('output.jpg');छवि फ्लिप
लंबवत फ्लिप
javascript
await sharp('input.jpg')
.flip()
.toFile('output.jpg');क्षैतिज फ्लिप
javascript
await sharp('input.jpg')
.flop()
.toFile('output.jpg');छवि काटना
निर्दिष्ट क्षेत्र काटना
javascript
await sharp('input.jpg')
.extract({ left: 100, top: 100, width: 300, height: 200 })
.toFile('output.jpg');काटना और आकार बदलना
javascript
await sharp('input.jpg')
.extract({ left: 100, top: 100, width: 300, height: 200 })
.resize(150, 100)
.toFile('output.jpg');फ़िल्टर प्रभाव
ग्रेस्केल रूपांतरण
javascript
await sharp('input.jpg')
.grayscale()
.toFile('output.jpg');धुंधला प्रभाव
javascript
await sharp('input.jpg')
.blur(5)
.toFile('output.jpg');तीक्ष्ण प्रभाव
javascript
await sharp('input.jpg')
.sharpen()
.toFile('output.jpg');रंग उलटना
javascript
await sharp('input.jpg')
.negate()
.toFile('output.jpg');रंग समायोजन
चमक समायोजन
javascript
await sharp('input.jpg')
.modulate({ brightness: 1.2 })
.toFile('output.jpg');संतृप्ति समायोजन
javascript
await sharp('input.jpg')
.modulate({ saturation: 0.8 })
.toFile('output.jpg');ह्यू समायोजन
javascript
await sharp('input.jpg')
.modulate({ hue: 180 })
.toFile('output.jpg');पारदर्शिता प्रसंस्करण
पारदर्शिता जोड़ना
javascript
await sharp('input.jpg')
.ensureAlpha()
.png()
.toFile('output.png');पारदर्शिता हटाना
javascript
await sharp('input.png')
.flatten({ background: { r: 255, g: 255, b: 255 } })
.jpeg()
.toFile('output.jpg');गुणवत्ता सेटिंग
JPEG गुणवत्ता
javascript
// उच्च गुणवत्ता
await sharp('input.png')
.jpeg({ quality: 95 })
.toFile('output.jpg');
// मध्यम गुणवत्ता
await sharp('input.png')
.jpeg({ quality: 80 })
.toFile('output.jpg');
// निम्न गुणवत्ता (छोटी फ़ाइल)
await sharp('input.png')
.jpeg({ quality: 50 })
.toFile('output.jpg');WebP गुणवत्ता
javascript
await sharp('input.jpg')
.webp({ quality: 80, lossless: false })
.toFile('output.webp');श्रृंखला ऑपरेशन
कई ऑपरेशन संयोजन
javascript
await sharp('input.jpg')
.resize(800, 600)
.rotate(90)
.blur(2)
.sharpen()
.jpeg({ quality: 80 })
.toFile('output.jpg');सशर्त प्रसंस्करण
javascript
const image = sharp('input.jpg').resize(300, 200);
if (needsBlur) {
image.blur(3);
}
if (needsSharpen) {
image.sharpen();
}
await image.jpeg({ quality: 80 }).toFile('output.jpg');त्रुटि प्रबंधन
मूल त्रुटि प्रबंधन
javascript
try {
await sharp('input.jpg')
.resize(300, 200)
.toFile('output.jpg');
} catch (error) {
console.error('छवि प्रसंस्करण विफल:', error.message);
}फ़ाइल अस्तित्व जांचना
javascript
const fs = require('fs');
if (fs.existsSync('input.jpg')) {
await sharp('input.jpg')
.resize(300, 200)
.toFile('output.jpg');
} else {
console.error('इनपुट फ़ाइल मौजूद नहीं है');
}स्ट्रीम प्रसंस्करण
स्ट्रीम से पढ़ना
javascript
const fs = require('fs');
fs.createReadStream('input.jpg')
.pipe(sharp().resize(300, 200))
.pipe(fs.createWriteStream('output.jpg'));स्ट्रीम में आउटपुट
javascript
const fs = require('fs');
sharp('input.jpg')
.resize(300, 200)
.jpeg({ quality: 80 })
.pipe(fs.createWriteStream('output.jpg'));Buffer प्रसंस्करण
Buffer से बनाना
javascript
const fs = require('fs');
const inputBuffer = fs.readFileSync('input.jpg');
const outputBuffer = await sharp(inputBuffer)
.resize(300, 200)
.jpeg({ quality: 80 })
.toBuffer();
fs.writeFileSync('output.jpg', outputBuffer);Buffer में आउटपुट
javascript
const buffer = await sharp('input.jpg')
.resize(300, 200)
.jpeg({ quality: 80 })
.toBuffer();
// सीधे buffer का उपयोग कर सकते हैं
console.log('छवि आकार:', buffer.length);बैच प्रसंस्करण
निर्देशिका में सभी छवियों को संसाधित करना
javascript
const fs = require('fs').promises;
const path = require('path');
async function processImages(inputDir, outputDir) {
const files = await fs.readdir(inputDir);
for (const file of files) {
if (file.match(/\.(jpg|jpeg|png|webp)$/i)) {
try {
await sharp(path.join(inputDir, file))
.resize(300, 200)
.jpeg({ quality: 80 })
.toFile(path.join(outputDir, file));
console.log(`प्रसंस्करण पूर्ण: ${file}`);
} catch (error) {
console.error(`${file} प्रसंस्करण विफल:`, error.message);
}
}
}
}
processImages('./input', './output');