Ātras un ātras attēlu apstrādes modulis pakalpojumā Node.js

Sharp ir attēlu apstrādes modulis, kas izmanto libvips bibliotēku, lai nodrošinātu ātru Node.js projektu apstrādi.

Sharp ir ātras apstrādes attēlu modulis Node.js projektiem, kurus nodrošina libvips attēlu apstrādes bibliotēka. Pateicoties šim papildinājumam, Sharp, kā norāda nosaukums, ir liela ātruma apstrādes jauda, jo tas saglabā tikai dažus nesaspiestu attēla datu reģionus atmiņā, tādējādi atbrīvojot lielu daļu no izmantotās CPU jaudas un L1/L2/L3 kešatmiņas.

Bibliotēka arī nodrošina, ka netiek radīti pakārtoti procesi un tiek atbalstīti asinhronie vai gaidīšanas procesi. Kā atvērtā pirmkoda attēlu apstrādes modulis Sharp atbalsta vairākus attēlu formātus un arī nesaspiestus pikseļu neapstrādātus datus. Lai nodrošinātu optimālu veiktspēju, noteikti izmantojiet Node.js versiju 10 un jaunāku versiju.

Previous Next

Darba sākšana ar Sharp

Ieteicamais veids, kā instalēt Sharp, izmantojot NPM. Lūdzu, izmantojiet šo komandu, lai to instalētu.

Instalējiet Sharp, izmantojot NPM

 npm install sharp 

Mainiet attēlu izmērus, izmantojot bezmaksas JavaScript API

Atvērtā pirmkoda asā bibliotēka ļauj JavaScript izstrādātājiem programmatiski mainīt attēlu izmērus. Sharp ļauj pārvērst lielus attēlu formātus mazākos izmēros, kas ir saderīgi ar dažādām tīmekļa lietojumprogrammām. Izmantojot aso bibliotēku, Sharp ir 4 līdz 5 reizes lielāks attēlu apstrādes ātrums, salīdzinot ar citiem attēla formātu pārveidotājiem, piemēram, ImageMagick vai GraphicsMagick. Sharp nodrošina, ka Lanczos resampling modulis neapdraud attēla kvalitāti.

Lasīt un mainīt attēlus, izmantojot JavaScript

const transformer = sharp()
  .resize({
    width: 200,
    height: 200,
    fit: sharp.fit.cover,
    position: sharp.strategy.entropy
  });
// Read image data from readableStream
// Write 200px square auto-cropped image data to writableStream
readableStream
  .pipe(transformer)
  .pipe(writableStream)

Attēlu apstrāde, izmantojot bezmaksas JavaScript API

Asā bibliotēka ļauj programmatūras izstrādātājiem apstrādāt attēlu JavaScript ietvarā. Varat veikt attēla darbības, piemēram, attēla izmēru maiņu, pagriešanu, izvilkšanu, korekcijas un kompozīciju. Sharp ir saderīgs ar MacOS, Windows un Linux sistēmām, un, izmantojot Node.js versiju 10 un jaunāku versiju, tai nav nepieciešama papildu instalēšana.

Izņemiet attēlu no reģiona, izmantojot JavaScript

sharp(input)
  .extract({ left: leftOffsetPre, top: topOffsetPre, width: widthPre, height: heightPre })
  .resize(width, height)
  .extract({ left: leftOffsetPost, top: topOffsetPost, width: widthPost, height: heightPost })
  .toFile(output, function(err) {
    // Extract a region, resize, then extract from the resized image
  });

Pagriezt attēlu, izmantojot JavaScript API

const rotateThenResize = await sharp(input)
  .rotate(90)
  .resize({ width: 16, height: 8, fit: 'fill' })
  .toBuffer();
const resizeThenRotate = await sharp(input)
  .resize({ width: 16, height: 8, fit: 'fill' })
  .rotate(90)
  .toBuffer();

Strādājiet ar attēlu metadatiem JavaScript lietotnēs

Atvērtā pirmkoda asajā bibliotēkā ir iekļauts pilns atbalsts darbam ar attēlu metadatiem JavaScript lietojumprogrammās. Bibliotēka nodrošina ātru piekļuvi attēla metadatiem, neatšifrējot saspiestus pikseļu datus. Tas ir iekļāvis atbalstu vairākiem svarīgiem rekvizītiem, piemēram, attēla izmēram, formātam, augstumam, platumam, dziļumam, blīvumam, telpai, līmeņiem, fonam, exif, hasprofile, lapai un daudzām citām. Varat arī viegli piekļūt pikseļu atvasinātajai attēla statistikai katram attēla kanālam, piemēram, min, max, summa, vidējais, asums, entropija un daudz ko citu.

Piekļūstiet attēla metadatiem, izmantojot JavaScript

const image = sharp(inputJpg);
image
  .metadata()
  .then(function(metadata) {
    return image
      .resize(Math.round(metadata.width / 2))
      .webp()
      .toBuffer();
  })
  .then(function(data) {
    // data contains a WebP image half the width and height of the original JPEG
  });
 Latviski