Modul de procesare rapidă și rapidă a imaginii în Node.js

Sharp este un modul de procesare a imaginilor care utilizează biblioteca libvips pentru a oferi procesare rapidă pentru proiectele Node.js.

Sharp este un modul de procesare rapidă a imaginilor pentru proiectele Node.js care sunt alimentate de biblioteca de procesare a imaginilor libvips. Datorită acestui plus, Sharp, așa cum sugerează și numele, are o putere de procesare de mare viteză, deoarece stochează doar câteva regiuni ale datelor de imagine necomprimate în memorie, eliberând o mare parte din puterea CPU utilizată și cache-ul L1/L2/L3.

Biblioteca se asigură, de asemenea, că niciun proces copil nu este generat și că sunt acceptate procesele asincrone sau de așteptare. Ca modul de procesare a imaginilor cu sursă deschisă, Sharp acceptă mai multe formate de imagine și, de asemenea, date de pixeli brute necomprimate. Pentru o performanță optimă, asigurați-vă că utilizați Node.js versiunea 10 și mai sus.

Previous Next

Noțiuni introductive cu Sharp

Modul recomandat de a instala Sharp prin NPM. Vă rugăm să utilizați următoarea comandă pentru a o instala.

Instalați Sharp prin NPM

 npm install sharp 

Redimensionați imaginile prin API-ul JavaScript gratuit

Biblioteca ascuțită open source permite JavaScript de dezvoltatori să redimensioneze imagini programatice. Sharp vă permite să convertiți formate mari de imagini în dimensiuni mai mici, care sunt compatibile cu diferite aplicații web. Cu ajutorul bibliotecii ascuțite, Sharp are o viteză de procesare de 4 până la 5 ori mai mare decât alte convertoare de format imagine, cum ar fi ImageMagick sau GraphicsMagick. Sharp se asigură că calitatea imaginii nu este compromisă de modulul de eșantionare Lancers.

Citiți și redimensionați imagini prin 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)

Procesarea imaginilor prin API-ul JavaScript gratuit

Biblioteca sharp permite dezvoltatorilor de software să proceseze imaginea în cadrul JavaScript. Puteți efectua operații de imagine, cum ar fi redimensionarea, rotirea, extragerea, corectarea și compunerea imaginii. Sharp este compatibil cu sistemele MacOS, Windows și Linux și nu necesită instalări suplimentare atunci când utilizați Node.js versiunea 10 și mai sus.

Extrageți imaginea dintr-o regiune prin 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
  });

Rotiți imaginea prin API-ul JavaScript

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();

Lucrați cu metadatele imaginilor în aplicațiile JavaScript

Biblioteca sharp open source a inclus suport complet pentru lucrul cu Metadatele imaginii în cadrul aplicațiilor JavaScript. Biblioteca oferă acces rapid la metadatele imaginii fără a decoda date de pixeli comprimate. Acesta a inclus suport pentru câteva proprietăți importante, cum ar fi dimensiunea imaginii, formatul, înălțimea, lățimea, adâncimea, densitatea, spațiul, nivelurile, fundalul, exif, hasprofile, pagina și multe altele. De asemenea, puteți accesa cu ușurință statistici de imagine derivate din pixeli pentru fiecare canal din imagine, cum ar fi min, max, sumă, medie, claritate, entropie și multe altele.

Accesați metadatele imaginii prin 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
  });
 Română