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 লাইসেন্সের অধীনে রিলিজ করা হয়েছে।