API संदर्भ
Sharp छवियों को संसाधित करने के लिए समृद्ध API प्रदान करता है। यह पृष्ठ सभी उपलब्ध विधियों का विस्तृत संदर्भ प्रदान करता है।
कंस्ट्रक्टर
sharp(input, options?)
एक नया Sharp इंस्टेंस बनाएं।
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()
छवि की मेटाडेटा जानकारी प्राप्त करें।
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()
छवि की सांख्यिकी जानकारी प्राप्त करें।
const stats = await sharp('input.jpg').stats();
console.log(stats);
// {
// isOpaque: true,
// dominant: { r: 128, g: 128, b: 128 }
// }आउटपुट विकल्प
toFile(filename, callback?)
प्रसंस्कृत छवि को फ़ाइल में सहेजें।
await sharp('input.jpg')
.resize(300, 200)
.toFile('output.jpg');toBuffer(options?, callback?)
प्रसंस्कृत छवि को Buffer के रूप में आउटपुट करें।
const buffer = await sharp('input.jpg')
.resize(300, 200)
.jpeg()
.toBuffer();toFormat(format, options?)
आउटपुट प्रारूप सेट करें।
// 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?)
छवि का आकार बदलें।
// मूल समायोजन
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)
छवि क्षेत्र काटें।
await sharp('input.jpg')
.extract({ left: 100, top: 100, width: 200, height: 200 })
.toFile('cropped.jpg');trim(threshold?)
स्वचालित रूप से पारदर्शी या सफेद किनारों को काटें।
await sharp('input.png')
.trim()
.toFile('trimmed.png');छवि ऑपरेशन
rotate(angle, options?)
छवि घुमाएं।
// 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?)
छवि को लंबवत रूप से फ्लिप करें।
await sharp('input.jpg')
.flip()
.toFile('flipped.jpg');flop(flop?)
छवि को क्षैतिज रूप से फ्लिप करें।
await sharp('input.jpg')
.flop()
.toFile('flopped.jpg');affine(matrix, options?)
एफ़िन रूपांतरण लागू करें।
await sharp('input.jpg')
.affine([[1, 0.3], [0, 1]], { background: { r: 255, g: 255, b: 255, alpha: 1 } })
.toFile('transformed.jpg');फ़िल्टर प्रभाव
blur(sigma?)
गाऊसी धुंधला लागू करें।
await sharp('input.jpg')
.blur(5)
.toFile('blurred.jpg');sharpen(sigma?, flat?, jagged?)
तीक्ष्ण फ़िल्टर लागू करें।
await sharp('input.jpg')
.sharpen()
.toFile('sharpened.jpg');
// कस्टम तीक्ष्ण पैरामीटर
await sharp('input.jpg')
.sharpen(1, 1, 2)
.toFile('sharpened.jpg');median(size?)
माध्यिका फ़िल्टर लागू करें।
await sharp('input.jpg')
.median(3)
.toFile('median.jpg');flatten(options?)
पारदर्शिता चैनल मर्ज करें।
await sharp('input.png')
.flatten({ background: { r: 255, g: 255, b: 255 } })
.toFile('flattened.jpg');रंग ऑपरेशन
grayscale(grayscale?)
ग्रेस्केल छवि में रूपांतरित करें।
await sharp('input.jpg')
.grayscale()
.toFile('grayscale.jpg');negate(negate?)
नेगेटिव प्रभाव।
await sharp('input.jpg')
.negate()
.toFile('negated.jpg');modulate(options?)
चमक, संतृप्ति और ह्यू समायोजित करें।
await sharp('input.jpg')
.modulate({
brightness: 1.2, // चमक
saturation: 0.8, // संतृप्ति
hue: 90 // ह्यू
})
.toFile('modulated.jpg');tint(rgb)
टिंट लागू करें।
await sharp('input.jpg')
.tint({ r: 255, g: 0, b: 0 })
.toFile('tinted.jpg');removeAlpha()
पारदर्शिता चैनल हटाएं।
await sharp('input.png')
.removeAlpha()
.toFile('no-alpha.jpg');ensureAlpha()
पारदर्शिता चैनल सुनिश्चित करें।
await sharp('input.jpg')
.ensureAlpha()
.toFile('with-alpha.png');चैनल ऑपरेशन
bandbool(boolean)
चैनलों पर बूलियन ऑपरेशन लागू करें।
await sharp('input.jpg')
.bandbool('and')
.toFile('bandbool.jpg');joinChannel(channels)
चैनल मर्ज करें।
await sharp('input.jpg')
.joinChannel(['red.jpg', 'green.jpg', 'blue.jpg'])
.toFile('joined.jpg');extractChannel(channel)
एकल चैनल निकालें।
await sharp('input.jpg')
.extractChannel('red')
.toFile('red-channel.jpg');वैश्विक गुण
sharp.versions
संस्करण जानकारी प्राप्त करें।
console.log(sharp.versions);
// {
// sharp: '0.32.0',
// vips: '8.14.0'
// }sharp.format
समर्थित प्रारूप प्राप्त करें।
console.log(sharp.format);
// {
// jpeg: { id: 'jpeg', ... },
// png: { id: 'png', ... },
// webp: { id: 'webp', ... },
// ...
// }sharp.kernel
उपलब्ध कर्नेल प्राप्त करें।
console.log(sharp.kernel);
// {
// nearest: 'nearest',
// cubic: 'cubic',
// mitchell: 'mitchell',
// lanczos2: 'lanczos2',
// lanczos3: 'lanczos3'
// }त्रुटि प्रबंधन
try {
await sharp('input.jpg')
.resize(300, 200)
.toFile('output.jpg');
} catch (error) {
console.error('छवि प्रसंस्करण विफल:', error);
}प्रदर्शन अनुकूलन
स्ट्रीम प्रसंस्करण
const pipeline = sharp()
.resize(300, 200)
.jpeg({ quality: 80 });
fs.createReadStream('large-input.jpg')
.pipe(pipeline)
.pipe(fs.createWriteStream('output.jpg'));समवर्ती प्रसंस्करण
const promises = images.map(image =>
sharp(image)
.resize(300, 200)
.jpeg()
.toBuffer()
);
const results = await Promise.all(promises);पूर्ण उदाहरण
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();अगला कदम
- अधिक उपयोग जानने के लिए उदाहरण पृष्ठ देखें
- प्रदर्शन अनुकूलन तकनीक जानें
- नवीनतम सुविधाओं के लिए अपडेट लॉग देखें