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