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();পরবর্তী ধাপ
- উদাহরণ পেজ দেখুন আরও ব্যবহার জানতে
- পারফরমেন্স অপ্টিমাইজেশন কৌশল জানুন
- চেঞ্জলগ দেখুন সর্বশেষ ফিচার জানতে